element 分页组件二次封装

新建一个组件
在这里插入图片描述
组件内容如下

<template>
  <div class="pagination-pages">
    <el-pagination
      @size-change="handleSizeChange"
      @current-change="handleCurrentChange"
      :current-page="currentPage"
      :page-sizes="pageSizes"
      :page-size="pageSize"
      layout="total, sizes, prev, pager, next, jumper"
      :total="total"
    ></el-pagination>
  </div>
</template>
<script>
export default {
  // 获取从父元素传递过来的数据
  props: {
    currentPage: {
      type: Number,
      default: () => {}
    },
    pageSizes: {
      type: Array,
      default: () => {}
    },
    pageSize: {
      type: Number,
      default: () => {}
    },
    total: {
      type: Number,
      default: () => {}
    }
  },
  methods: {
    /**
     * 改变每页显示多少条数时,将数据传递给父元素
     */
    handleSizeChange(val) {
      this.$emit('sizeChange', val)
    },
    /**
     * 改变当前第几页,将数据传递给父元素
     */
    handleCurrentChange(val) {
      this.$emit('currentChange', val)
    }
  }
}
</script>

在父级组件引入组件并注册

import pagination from '../pagination.vue'
export default {
  components: {
    pagination
  }
 }

在父组件使用分页组件并传递参数给分页组件

 <pagination
        :currentPage="queryInfo.pagenum"
        :pageSizes="[1, 2, 5, 10]"
        :pageSize="queryInfo.pagesize"
        :total="total"
        @sizeChange="sizeChange"
        @currentChange="currentChange"
      ></pagination>

接收分页组件出发事件时传递的事件同时接收参数

 sizeChange(val) {
      this.queryInfo.pagesize = val
      this.getUserList()
    },
    currentChange(val) {
      this.queryInfo.pagenum = val
      this.getUserList()
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值