封装的原因

首先封装组件的需求肯定是多个地方要用到同一个东西,他们都有公共的地方,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 组件的封装的更多相关文章

  1. vue2.0 如何自定义组件(vue组件的封装)

    一.前言 之前的博客聊过 vue2.0和react的技术选型:聊过vue的axios封装和vuex使用.今天简单聊聊 vue 组件的封装. vue 的ui框架现在是很多的,但是鉴于移动设备的复杂性,兼 ...

  2. 认识Vue组件

    前言 Vue.js是一套构建用户界面的渐进式框架(官方说明).通俗点来说,Vue.js是一个轻量级的,易上手易使用的,便捷,灵活性强的前端MVVM框架.简洁的API,良好健全的中文文档,使开发者能够较 ...

  3. 如何封装使用api形式调用的vue组件

    在实际开发中一般有两种封装vue组件的方法:一种就是常用的的通过props父组件传值给子组件的方法: 子组件 父组件: 还有一种就是通过调用api的形式,下面例子是本人在实际项目中封装的一个自定义图标 ...

  4. 手把手教你封装 Vue 组件,并使用 npm 发布

    Vue 开发插件 开发之前先看看官网的 开发规范 我们开发的之后期望的结果是支持 import.require 或者直接使用 script 标签的形式引入,就像这样: // 这里注意一下包的名字前缀是 ...

  5. vue组件封装及父子组件传值,事件处理

    vue开发中,把有统一功能的部分提取出来,作为一个独立的组件,在需要使用的时候引入,可以有效减少代码冗余.难点在于如果封装,使用,如何传参,派发事件等,我会采取倒叙的方式进行说明.(本文总结于Vue2 ...

  6. vue_music:封装scroll.vue组件

    在项目中经常用到滚动,结合Better-scroll封装了sroll.vue组件参考链接:https://ustbhuangyi.github.io...http://www.imooc.com/ar ...

  7. 前端如何搭建vue UI组件库/封装插件(从零到有)

    需求 因之前是做外包项目居多,经常用到相同的组件,之前的办法是在一个项目中写一个组件,其他项目直接将compents下的组件复制,粘贴到项目中使用,缺点是维护起来,改一个项目,其他项目也需要修改,所以 ...

  8. 封装Vue组件的一些技巧

    封装Vue组件的一些技巧 本文同步在个人博客shymean.com上,欢迎关注 写Vue有很长一段时间了,除了常规的业务开发之外,也应该思考和反思一下封装组件的正确方式.以弹窗组件为例,一种实现是在需 ...

  9. vue --》组件的封装 及 参数的传递

    vue组件的定义 ● 组件(Component)是Vue.js最强大的功能之一 ● 组件可以扩展HTML元素,封装可重用代码 ● 在较高层面上,组件是自定义元素,Vue.js的编译器为他添加特殊功能 ...

随机推荐

  1. 解决ASP.NET上传文件大小限制------(转载人家的博客很好用,略作修改)

    解决ASP.NET上传文件大小限制 (2012-06-26 15:18:01) 转载▼ 标签: it   第一种方法,主要适用于IIS6.0版本 一.修改配置Web.Config文件中的httpRun ...

  2. docker 修改容器配置文件

    启动docker镜像命令docker run 可以指定端口映射,但是容器一旦创建就无法在通过命令修改.通常是保存镜像在创建一个新的容器.有没有办法不保存镜像直接修改这个容器呢?答案是有的,本文已mys ...

  3. Vue的属性、事件、插槽

    属性 自定义属性props ->组件的propos中声明的属性 原生属性attrs ->没有声明属性,默认自动挂载在组件的根元素上,inheritAttrs可以关闭自动挂载 特殊属性cla ...

  4. 预处器的对比——Sass、LESS和Stylus

    http://www.w3cplus.com/css/sass-vs-less-vs-stylus-a-preprocessor-shootout.html

  5. 基于jQuery的鼠标悬停时放大图片的效果制作

    这是一个基于jQuery的效果,当鼠标在小图片上悬停时,会弹出一个大图,该大图会跟随鼠标的移动而移动.这个效果最初源于小敏同志的一个想法,刚开始做的时候只能实现弹出的图片是固定的,不能随鼠标移动,最后 ...

  6. ASP.NET Core整合Zipkin链路跟踪

    前言     在日常使用ASP.NET Core的开发或学习中,如果有需要使用链路跟踪系统,大多数情况下会优先选择SkyAPM.我们之前也说过SkyAPM设计确实比较优秀,巧妙的利用Diagnosti ...

  7. 吴恩达《深度学习》-课后测验-第一门课 (Neural Networks and Deep Learning)-Week 3 - Shallow Neural Networks(第三周测验 - 浅层神 经网络)

    Week 3 Quiz - Shallow Neural Networks(第三周测验 - 浅层神经网络) \1. Which of the following are true? (Check al ...

  8. C语言01

    从问题到C语言程序设计 1.1计算机的问题求解方法 程序设计面向的问题 什么问题可以用程序的方法解决? 打印九九乘法表 图形变换 文件压缩问题 ....... 一切可计算的问题 如何解决? 确定问题可 ...

  9. 关于JAVA的一些零碎小知识

    1.经常遇到集合之间需要互相转化的 Array和List转化:Arrays.asList(数组):list.toArray(); List和Set转化:Set<String> set = ...

  10. RXJAVA之创建被观察者

    RXJava中提供了多种创建数据源的方式 使用create方法 Observable<String> observable = Observable.create(new Observab ...