Vue分页组件的封装方法
更新时间:2022年7月6日 10:35 点击:504 作者:kanami154
前言
这个是基于vue2的分页封装,仿照elementUI而写的组件。
效果如图
话不多说,直接上代码
<template> <div class="pagination"> <!-- 总页数 --> <div class="total">共{{ total }}条</div> <!-- 选择每页的条数 --> <select name="" id="size_select" v-model="sizes" @change="sizeChange"> <option v-for="item in pageSizes" :key="item" :value="item"> {{ item }}条/页 </option> </select> <div class="pagenum"> <!-- 上一页 --> <el-button icon="el-icon-arrow-left" :disabled="backDisabled" circle @click="back" ></el-button> <!-- 页码 --> <ul> <li :class="currentPage == item ? 'active' : ''" v-for="(item, index) in pagenum" :key="index" @click="toPage(item)" > {{ item }} </li> </ul> <!-- 下一页 --> <el-button icon="el-icon-arrow-right" :disabled="forwardDisabled" circle @click="forward" ></el-button> </div> </div> </template> <script> export default { name: "pagination", props: { total: { // 总数 type: null, required: true, }, pageSizes: { // 可选择的每页条数 type: Array, }, pageSize: { // 每页显示的条数 type: Number, required: true, }, currentPage: { // 当前页 type: Number, required: true, }, }, data() { return { sizes: this.pageSize, // 接收props传来的pageSize nowPage: this.currentPage, // 接收props传来的currentPage }; }, computed: { allPage() { // 计算所有的页数 return Math.ceil(this.total / this.pageSize); }, backDisabled() { // 是否禁用上一页 return this.currentPage == 1; }, forwardDisabled() { // 是否禁用下一页 return this.currentPage == this.allPage; }, pagenum() { // 计算显示不同的页 if (this.allPage - this.nowPage > 6) { // if (this.nowPage > 6) { return [ 1, "...", this.nowPage - 2, this.nowPage - 1, this.nowPage, this.nowPage + 1, this.nowPage + 2, "...", this.allPage, ]; } else { if (this.allPage > 8) { return [1, 2, 3, 4, 5, 6, "...", this.allPage]; } else { return this.allPage; } } } else { if (this.nowPage < 6) { return this.allPage; } else { return [ 1, "...", this.allPage - 5, this.allPage - 4, this.allPage - 3, this.allPage - 2, this.allPage - 1, this.allPage, ]; } } }, }, methods: { sizeChange() { // 每页限制条数改变触发事件 this.$emit("sizeChange", this.sizes); }, forward() { // 点击下一页 this.$emit("currentChange", (this.nowPage += 1)); }, back() { // 点击上一页 this.$emit("currentChange", (this.nowPage -= 1)); }, toPage(val) { // 点击页数 if (val == "...") { console.log(2); } else { this.nowPage = val; this.$emit("currentChange", val); } }, }, }; </script>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持猪先飞。
原文出处:https://blog.csdn.net/kanami154/article/details/124739280
上一篇: Vue dialog模态框的封装方法
下一篇: vue开发中后台系统复杂表单优化技巧
相关文章
- 这篇文章主要介绍了vue中activated的用法,帮助大家更好的理解和使用vue框架,感兴趣的朋友可以了解下...2021-01-03
基于vue-simple-uploader封装文件分片上传、秒传及断点续传的全局上传插件功能
这篇文章主要介绍了基于vue-simple-uploader封装文件分片上传、秒传及断点续传的全局上传插件,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-02-23Antd-vue Table组件添加Click事件,实现点击某行数据教程
这篇文章主要介绍了Antd-vue Table组件添加Click事件,实现点击某行数据教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-11-17- 这篇文章主要介绍了vue 实现动态路由的方法,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-07-06
- 这篇文章主要介绍了Vue组件跨层级获取组件操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-28
- 这篇文章主要介绍了Vue基于localStorage存储信息代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-11-16
antdesign-vue结合sortablejs实现两个table相互拖拽排序功能
这篇文章主要介绍了antdesign-vue结合sortablejs实现两个table相互拖拽排序功能,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-01-09- 这篇文章主要介绍了vue 获取到数据但却渲染不到页面上的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-11-19
- 这篇文章主要介绍了vue 监听 Treeselect 选择项的改变操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-09-01
- 最常见的多环境配置,就是开发环境配置,和生产环境配置,本文主要介绍了vue项目多环境配置的实现,感兴趣的可以了解一下...2021-07-20
- 这篇文章主要介绍了Vue 3.0 中 jsx 语法使用,帮助大家更好的理解和使用vue框架,感兴趣的朋友可以了解下...2020-11-13
vue项目页面嵌入代码块vue-prism-editor的实现
这篇文章主要介绍了vue项目页面嵌入代码块vue-prism-editor的实现,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-10-30解决vue的router组件component在import时不能使用变量问题
这篇文章主要介绍了解决vue的router组件component在import时不能使用变量问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-27vue Treeselect下拉树只能选择第N级元素实现代码
这篇文章主要介绍了vue Treeselect下拉树只能选择第N级元素实现代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-09-01- 这篇文章主要为大家详细介绍了vue实现同时设置多个倒计时,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-05-20
Ant design vue table 单击行选中 勾选checkbox教程
这篇文章主要介绍了Ant design vue table 单击行选中 勾选checkbox教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-10-25- 这篇文章主要介绍了Vue select 绑定动态变量的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-10-23
- 这篇文章主要为大家详细介绍了vue实现div单选多选功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-07-16
- 这篇文章主要介绍了vue treeselect获取当前选中项的label实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-09-01
vuejs element table 表格添加行,修改,单独删除行,批量删除行操作
这篇文章主要介绍了vuejs element table 表格添加行,修改,单独删除行,批量删除行操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-18