element-ui组件扩展--自定义分页组件

element-ui组件扩展–自定义分页组件

*想要封装好一个组件,必须要熟练掌握这三个知识点:
1.父组件传值到子组件(props)
2.子组件传值到父组件( e m i t ) 3. 插 槽 使 用 ( s l o t ) 。 对 于 一 个 独 立 的 组 件 , p r o p s 是 用 来 为 组 件 内 部 注 入 核 心 内 容 ; emit) 3.插槽使用(slot)。 对于一个独立的组件,props是用来为组件内部注入核心内容; emit3.使slotpropsemit用来使这个组件通过一些操作来融入其它组件中。
在*这里插入图片描述

1.element-UI安装及引用

根据element-ui的官方文档 官网地址:http://element.eleme.io/#/zh-CN 使用npm或者cnpm(淘宝镜像)执行下面命令即可安装npm install element-ui -S

在main.js中引入

import Vue from 'vue';
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
import App from './App.vue';
 

Vue.use(ElementUI);

new Vue({
el: ‘#app’,
render: h => h(App)
});

2.新建一个Pagination.vue页面

在components文件夹新建一个Pagination.vue页面

/*** 分页组件*/
 <template>  <el-pagination class="page-box" @size-change="handleSizeChange" @current-change="handleCurrentChange" background :current-page="childMsg.currentPage" :page-sizes="[10, 20, 30, 40]" :page-size="childMsg.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="childMsg.total">  </el-pagination></template><script>export default {  name: 'Pagination',  props: ['childMsg'],  data() {    return {      pageparm: {        currentPage: this.childMsg.currentPage,        pageSize: this.childMsg.pageSize      }    }  },  created() {},  methods: {    handleSizeChange(val) {      /**       * 子传父       * 参数1 父元素方法       * 参数2 数据       */      this.pageparm.pageSize = val      this.$emit('callFather', this.pageparm)    },    handleCurrentChange(val) {      /**       * 子传父       * 参数1 父元素方法       * 参数2 数据       */      this.pageparm.currentPage = val      this.$emit('callFather', this.pageparm)    }  }}</script>
<style>.page-box {    padding: 20px 0px 50px 0px;    background: #fff;    border-radius: 0px 0px 10px 10px;}</style>

3.分页组件的引入,调用

在需要使用该组件的页面
引入该组件:

import Pagination from '../../../components/Pagination'

调用该组件

<Pagination v-bind:child-msg="pageparm" @callFather="callFather" class="pagtn" ></Pagination>

定义分页参数

  export default {  data() {    
		return {
		  // 分页参数   
		     pageparm: {     
		        currentPage: 1,   
		        pageSize: 10,    
		       total: 10    
		         },
		  }
		}

分页赋值

methods: {
        // 分页插件事件 
        callFather(parm) {     
            this.formInline.current_page = parm.currentPage;   
            this.formInline.page_size = parm.pageSize;         
            //this.getdata(); //数据刷新
             },
           }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值