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的编译器为他添加特殊功能 ... 
随机推荐
- django学习(三)
			1.单表操作和测试环境的准备 我们先对单表查询做一个总结和回顾,并进行进一步的学习和交流.我们在我们的应用的models.py文件下面书写user类.如下所示,然后用数据库迁移,在mysql数据库中生 ... 
- whlie do-whlie
			switch语句 用于根据多个不同条件执行不同动作. while 循环 while循环基本语法: 条件初始化; while(条件表达式){ //条件表达式就是判 ... 
- git多账号使用
			1 背 景 在公司上班的员工会同时拥有两个git账号, 一个是公司内部的, 仅允许工作时使用; 另一个是个人的, 常用于日常的学习记录. 此时, 面临的问题是如何在一台电脑(客户端)上正常使用两个账号 ... 
- Django-配置镜像源,虚拟环境详解
			0.配源虚拟 全局配源 阿里云镜像站:https://developer.aliyun.com/mirror/ # 在cmd中操作,查找文件 C:\Users\Administrator>pip ... 
- 乔悟空-CTF-i春秋-Web-Not Found-🙋🏻♂️
			2020.09.08 又是匆匆忙忙的一天- 做题 题目 题目地址 做题 做题??做个屁,啥也不知道,干瞪眼 
- [LeetCode]121、122、309 买股票的最佳时机系列问题(DP)
			121.买卖股票的最佳时机 题目 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格. 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润. 注意 ... 
- 不再用上官网,自己部署一套ElementUI官方最新文档
			ElementUI官方的访问速度一直很慢,公司内网也无法进行外网访问.故研究了下最新的ElementUI API(2.13.2)部署教程. 先上效果图 ElementUI文档部署过程 到github下 ... 
- 学习 | jQuery移动端页面组件化开发(一)
			最近在学习移动端组件化开发web页面,其中有好多小细节,值的去思考. 主要介绍JS的思路,具体的代码就不贴了,主要是想表达出一种思路 总体来说 1.入口文件,在入口文件中导入插件,插件样式,jquer ... 
- 深入理解java虚拟机--垃圾收集器
			对象的销毁 对象的finalize方法只会执行一次,在finalize里可以自救不被销毁,二次被主动gc,必定会销毁 类销毁 
- 在VS2019使用MASM编写汇编程序
			具体的配置步骤可以参考: 汇编环境搭建 Windows10 VS2019 MASM32 本文主要是入门向的教程,VS2019中要调用C语言函数需要加上 includelib ucrt.lib incl ... 
