vue+element 分页组件封装

子组件:

<template>
  <div class="tablePage">
    <!-- hide-on-single-page="true"  只有1页的时候分页是否隐藏 -->
    <el-pagination
      background
      @size-change="handleSizeChange"
      @current-change="handleCurrentChange"
      :current-page="Number(page)"
      :pager-count="9"
      :hide-on-single-page="true"
      :page-sizes="[15, 25, 35, 45]"
      :page-size="pageSize"
      layout="total, sizes, prev, pager, next"
      :total="total">
    </el-pagination>
  </div>
</template>

<script>
export default {
  props: ['page', 'pageSize', 'total'],
  methods: {
    // 当每页的条数发生变化时触发
    handleSizeChange (size) {
      this.$emit('pageSizeChange', size)
    },
    // 分页触发
    handleCurrentChange (current) {
      this.$emit('currentChange', current)
    }
  }
}
</script>

父组件调用:

<template>
	<Pagination
    :page="page"
    :pageSize="pageSize"
    :total="total"
    @currentChange="currentChange($event)"
    @pageSizeChange="pageSizeChange($event)">
	</Pagination>
</template>
<script>
import Pagination from '@/components/Pagination'
export default {
	components: {
		Pagination
	},
	data () {
		return {
			page: 1,
            pageSize: 15,
            total: 29
        }
	},
	methods:{
		currentChange(event) {
            this.page = event
            // 调用接口XXX
        },
        pageSizeChange(event) {
            this.pageSize = event
            // 调用接口XXX
        }
	}
}
</script>
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值