vue3封装el-pagination分页组件的完整代码

 更新时间:2024年02月26日 09:47:02   作者:PXY_J  
这篇文章主要介绍了vue3封装el-pagination分页组件的完整代码,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧

1、效果如图:

在这里插入图片描述

2、分页组件代码:

<template>
  <div class="paging">
    <el-config-provider :locale="zhCn">
      <el-pagination
        v-model:current-page="page.currentPage"
        v-model:page-size="page.pageSize"
        :background="page.background"
        :layout="page.layout"
        :total="page.total"
        @size-change="page.handleSizeChange"
        @current-change="page.handleCurrentChange"
      />
    </el-config-provider>
  </div>
</template>
<script setup>
import { ElConfigProvider } from 'element-plus'
import zhCn from 'element-plus/es/locale/lang/zh-cn';
zhCn.el.pagination.goto = "到第"
const props = defineProps({
  total: {
    required: true,
    type: Number,
    default: 300
  },
  // 当前页数
  currentPage: {
    type: Number,
    default: 1
  },
  // 分页
  pageSize: {
    type: Array,
    default: () => {
      return [10, 20, 30, 50, 100]
    }
  },
  limit: {
    type: Number,
    default: 10
  },
  layout: {
    type: String,
    default: 'total, sizes, prev, pager, next, jumper'
  },
  background: {
    type: Boolean,
    default: () => {
      return true
    },
  },
});
const emit = defineEmits();
const currentPage = computed({
    get() {
        return props.currentPage
    },
    set(val) {
        emit('update:currentPage', val)
    }
})
const pageSize = computed({
    get() {
        return props.limit
    },
    set(val) {
        emit('update:limit', val)
    }
})
const page  = reactive({
  background:props.background,
  currentPage:props.currentPage,
  pageSize:props.pageSize[0],
  layout:props.layout,
  total:props.total,
  handleSizeChange:(val)=>{
    console.log(`${val} items per page`)
    emit('handleSizeChange', val);
  },
  handleCurrentChange:(val)=>{
    console.log(`current page: ${val}`)
    emit('handleCurrentChange', val);
  }
});
</script>
<style lang="scss" scoped>
</style>

3、使用代码:

**结构:**
<template>
<Paging
   :current-page="page.currentPage"
   :page-size="page.pageSize"
   :background="page.background"
   :layout="page.layout"
   :total="page.total"
   :limit="page.limit"
   @handleSizeChange="page.handleSizeChange"
   @handleCurrentChange="page.handleCurrentChange"
 ></Paging>
</template>
**js:**
<script setup>
import Paging from "@/components/paging";//引入分页组件
const page = reactive({
  layout:'prev, pager, next, jumper',
  currentPage:1,
  limit:10,
  total:300,
  handleSizeChange:(val)=>{
    page.pageSize = val
  },
  handleCurrentChange:(val)=>{
   page.currentPage = val
  }
})
</script>

到此这篇关于vue3封装el-pagination分页组件的文章就介绍到这了,更多相关vue3封装el-pagination内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 基于vue中的scoped坑点解说

    基于vue中的scoped坑点解说

    这篇文章主要介绍了基于vue中的scoped坑点解说,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • 轻量级富文本编辑器wangEditor结合vue使用方法示例

    轻量级富文本编辑器wangEditor结合vue使用方法示例

    在我们项目中,有些时候需要使用富文本编辑器。本文将以百度开发的Ueditor结合Vue.js介绍一下。非常具有实用价值,需要的朋友可以参考下
    2018-10-10
  • Vue3 中 watch 与 watchEffect 区别及用法小结

    Vue3 中 watch 与 watchEffect 区别及用法小结

    这篇文章主要介绍了Vue3 中 watch 与 watchEffect 有什么区别?watch中需要指明监视的属性,也需要指明监视的回调,而watchEffect中不需要指明监视的属性,只需要指明监视的回调,回调函数中用到哪个属性,就监视哪个属性,本文给大家详细介绍,需要的朋友参考下
    2022-06-06
  • vue2 element-ui el-checkbox视图不更新问题及解决

    vue2 element-ui el-checkbox视图不更新问题及解决

    作者在开发过程中遇到了视图不更新的问题,最终通过改变一个无关紧要的响应式数据来解决,让视图发生改变
    2024-12-12
  • 关于vue.js中this.$emit的理解使用

    关于vue.js中this.$emit的理解使用

    本文主要介绍了关于vue.js中this.$emit的理解使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • Vue解读之响应式原理源码剖析

    Vue解读之响应式原理源码剖析

    Vue 最独特的特性之一,是其非侵入性的响应式系统,下面这篇文章主要给大家介绍了关于Vue响应式原理源码剖析的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2021-10-10
  • Vue v2.5 调整和更新不完全问题

    Vue v2.5 调整和更新不完全问题

    这篇文章主要介绍了Vue v2.5 调整和更新不完全问题的相关资料,需要的朋友可以参考下
    2017-10-10
  • vue中的v-touch事件用法说明

    vue中的v-touch事件用法说明

    这篇文章主要介绍了vue中的v-touch事件用法说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • vue3 Teleport瞬间移动函数使用方法详解

    vue3 Teleport瞬间移动函数使用方法详解

    这篇文章主要为大家详细介绍了vue3 Teleport瞬间移动函数使用方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-03-03
  • vue 如何删除数组中的某一条数据

    vue 如何删除数组中的某一条数据

    这篇文章主要介绍了vue 如何删除数组中的某一条数据,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08

最新评论