vue 组件的封装
封装的原因
首先封装组件的需求肯定是多个地方要用到同一个东西,他们都有公共的地方,vue的封装 简单来说就是将公共参数封装起来 然后在需要的地方引入
//子组件封装
<template>
<div class="pagination-wrapper">
<el-pagination
:background="background"
align="right"
@current-change="currentChange"
@size-change="sizeChange"
:page-size="pageSize"
:page-sizes="[10,20,30]"
:current-page="currentPage"
:layout="layout"
:total="total"
:page-count="pageCount"
>
<div class="tip">
<span>共{{pageCount}}页</span>
<span>共{{total}}条记录</span>
</div>
</el-pagination>
</div>
</template>
<script>
/**
* 分页组件
* @props total 总记录数
* @props pageCount 总页数
* @props currentPage 当前页码
* @props pageSize 每页记录数
* @methods handle(currentPage, pageSize) 当前页码和每页条数
*/
export default {
props: {
total: {
type: Number,
default: 0
},
pageCount: {
type: Number,
default: 0
},
currentPage: {
type: Number,
default: 1
},
pageSize: {
type: Number,
default: 1
},
layout: {
type: String,
default: "sizes, prev, pager, next, slot, jumper"
}
},
data() {
return {
background: true,
};
},
watch: {
},
computed:{
},
created() {
},
mounted() {
this.$nextTick(() => {
// console.log(this.currentPage)
});
},
methods: {
// 分页
currentChange(val) {
this.$emit("handle", val, this.pageSize);
},
sizeChange(val) {
this.$emit("handle", this.currentPage, val);
}
}
};
</script>
<style scoped lang="less">
.pagination-wrapper {
padding: 20px 0;
background: #fff;
.tip {
display: inline-block;
font-weight: normal;
span {
margin: 0 10px;
}
}
}
</style>
//父页面---调用
<template>
<div class='pagination-default'>
<com-pagination @handle="pageChange" :total="total" :page-size="pageSize" :current-page.sync="pageNum" :page-count="pageTotal"></com-pagination>
</div>
</template>
<script>
export default {
data() {
return {
total: 0, // 总记录数
pageSize: 10, // 每页记录数
pageNum: 1, // 当前页码
pageTotal: 0, // 总页数
tableData: [],
totalData: "",
}
},
mounted(){
},
methods: {
pageChange(currentPage, pageSize) {
this.pageNum = currentPage;
this.pageSize = pageSize;
},
}
}
</script>
<style scoped lang="less">
</style>
遇到的性能优化的问题
这里。我之前遇到一个坑,我一般都是直接封装成公共组件,但是公共组件 在项目初始化的时候就都调用了 所以。加载的时候特别慢,这就需要。你单独引入。不能直接定义成全局的
vue 组件的封装的更多相关文章
- vue2.0 如何自定义组件(vue组件的封装)
一.前言 之前的博客聊过 vue2.0和react的技术选型:聊过vue的axios封装和vuex使用.今天简单聊聊 vue 组件的封装. vue 的ui框架现在是很多的,但是鉴于移动设备的复杂性,兼 ...
- 认识Vue组件
前言 Vue.js是一套构建用户界面的渐进式框架(官方说明).通俗点来说,Vue.js是一个轻量级的,易上手易使用的,便捷,灵活性强的前端MVVM框架.简洁的API,良好健全的中文文档,使开发者能够较 ...
- 如何封装使用api形式调用的vue组件
在实际开发中一般有两种封装vue组件的方法:一种就是常用的的通过props父组件传值给子组件的方法: 子组件 父组件: 还有一种就是通过调用api的形式,下面例子是本人在实际项目中封装的一个自定义图标 ...
- 手把手教你封装 Vue 组件,并使用 npm 发布
Vue 开发插件 开发之前先看看官网的 开发规范 我们开发的之后期望的结果是支持 import.require 或者直接使用 script 标签的形式引入,就像这样: // 这里注意一下包的名字前缀是 ...
- vue组件封装及父子组件传值,事件处理
vue开发中,把有统一功能的部分提取出来,作为一个独立的组件,在需要使用的时候引入,可以有效减少代码冗余.难点在于如果封装,使用,如何传参,派发事件等,我会采取倒叙的方式进行说明.(本文总结于Vue2 ...
- vue_music:封装scroll.vue组件
在项目中经常用到滚动,结合Better-scroll封装了sroll.vue组件参考链接:https://ustbhuangyi.github.io...http://www.imooc.com/ar ...
- 前端如何搭建vue UI组件库/封装插件(从零到有)
需求 因之前是做外包项目居多,经常用到相同的组件,之前的办法是在一个项目中写一个组件,其他项目直接将compents下的组件复制,粘贴到项目中使用,缺点是维护起来,改一个项目,其他项目也需要修改,所以 ...
- 封装Vue组件的一些技巧
封装Vue组件的一些技巧 本文同步在个人博客shymean.com上,欢迎关注 写Vue有很长一段时间了,除了常规的业务开发之外,也应该思考和反思一下封装组件的正确方式.以弹窗组件为例,一种实现是在需 ...
- vue --》组件的封装 及 参数的传递
vue组件的定义 ● 组件(Component)是Vue.js最强大的功能之一 ● 组件可以扩展HTML元素,封装可重用代码 ● 在较高层面上,组件是自定义元素,Vue.js的编译器为他添加特殊功能 ...
随机推荐
- 14_Web服务器-并发服务器
1.服务器概述 1.硬件服务器(IBM,HP): 主机 集群 2.软件服务器(HTTPserver Django flask): 网络服务器,在后端提供网络功能逻辑处理数据处理的程序或者架构等 3.服 ...
- Java实现简单混合计算器
这个计算器并不是基于逆波兰实现的,而是通过简单的递归,一层一层地计算最终求得结果. 具体的图形化界面可以参考我的另外一个篇博客:基于逆波兰表达式实现图形化混合计算器,这里我只是简单的介绍一下怎样求得算 ...
- Linux:使用SecureCRT来上传和下载文件
SecureCRT自带的有几种上传下载功能,SecureCRT下的文件传输协议有以下几种:ASCII.Xmodem.Ymodem.Zmodem. ASCII:这是最快的传输协议,但只能传送文本文件. ...
- Conscription(POJ 3723)
原题如下: Conscription Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 16584 Accepted: 57 ...
- 数据库漏洞扫描工具scuba
1.先下载安装scuba 参考地址 https://www.52pojie.cn/thread-702605-1-1.html 百度网盘下载地址: 链接:https://pan.baidu.com/ ...
- oracle之三存储库及顾问框架
AWR存储库及顾问框架(PPT-I-349-360) 14.1 Oracle数据库采样ASH和AWR. 1) ASH(Active Session History) ASH收集的是活动会话的样本数据, ...
- sql注入 报错注入常用的三种函数
1.floor()函数 报错原因是 报错的原因是因为rand()函数在查询的时候会执行一次,插入的时候还会执行一次.这就是整个语句报错的关键 前面说过floor(rand(0)*2) 前六位是0110 ...
- 预科班D2
2020.09.08星期二 预科班D2 学习内容: 一.复习 1.平台: 平台=操作系统+计算机硬件 2.跨平台性 3.文件 文件是指操作系统提供给上层使用者操作硬盘的一种功能.
- 项目初始化CSS公共样式
/*! normalize.css v6.0.0 | MIT License | github.com/necolas/normalize.css */ /* Document =========== ...
- 1.Strom-概述