分页组件封装以及使用

第一步:在src/component下建立pagination.vue文件

<template>
  <div class="pageMachine">
    <el-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange"
      v-model:currentPage="queryParam.PageIndex" :page-sizes="pageSizes" v-model:page-size="queryParam.PageSize"
      layout="total, sizes, prev, pager, next, jumper" :total="TotalCount">
    </el-pagination>
  </div>
</template>
 
<script>
  import {
    reactive,
    toRefs
  } from 'vue'
  export default {
    name: 'pagination',
    props: {
      TotalCount: {
        type: [Number, String],
        default: 100
      },
       pageSizes:{
        type:Array,
        default:[20,50,100,300,500]
      },
        queryParam :{
         type:OBject      
      }
    },
    setup(props, {emit}) {
      //传递PageSize
      const handleSizeChange = (PageSize) => {
        emit('update:page-size', PageSize)
      }
      //   传递PagIndex
      const handleCurrentChange = (PageIndex) => {
        emit('update:current-page', PageIndex)
      }
      return {
        handleSizeChange,
        handleCurrentChange,
      }
    }
  }
 
</script>
 
<style>
 
</style>

第二步:以下代码在父组件中填补:

1.引入  分页组件

import pagination from '@/components/pagination.vue'

 2.在 components 中注册组件

components:{ pagination }

3.在 template 中使用组件 

<pagination
@update:current-page="handleCurrentChange"
@update:page-size="handleSizeChange"
:queryParam ="自定义分页"
:TotalCount ="自定义总数"
:pageSizes="自定义页总条数"
/>

 注释:

  <1>  非必传,第一页需要展示大量数据的时候(传)在 data 里定义变量 eg: pageSizes:[300,500,1000.....]
        :pageSizes="pageSizes"

    <2> handleCurrentChange/handleSizeChange
         是在父组件中定义的事件

      //分页组件事件
      handleSizeChange(PageSize) {
          this.自定义分页.PageSize = PageSize;
          //----获取列表数据
          this.GetData();
      },
      handleCurrentChange(PageIndex) {
          this.自定义分页.PageIndex = PageIndex;
          //----获取列表数据
          this.GetData();
      },

    <3>当没有数据的时候可以让分页组件隐藏
         v-if="响应得接口数据.TotalCount"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值