千家信息网

使用vue如何实现一个分页组功能

发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,本文小编为大家详细介绍"使用vue如何实现一个分页组功能",内容详细,步骤清晰,细节处理妥当,希望这篇"使用vue如何实现一个分页组功能"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习
千家信息网最后更新 2025年02月04日使用vue如何实现一个分页组功能

本文小编为大家详细介绍"使用vue如何实现一个分页组功能",内容详细,步骤清晰,细节处理妥当,希望这篇"使用vue如何实现一个分页组功能"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

文件的目录:

我们在 pageComponentsTest.vue 页面引入了 pageComponent.vue 分页组件。整体思路是通过 props
来达到组件的灵活通用的效果,整体语法是使用vue的VM语法。

pageComponent.vue实现

首先实现一个分页,需要知道数据总条数,一个页面显示的数据条数和当前显示第几页的数据。那么我们在 pageComponent.vue 里面的 props 就有了。看下面的代码:

props: {   // 分页配置   pageConfig: {    type: Object, require: true, default() {     return {      pageSize: 10,   //一页的数据条数      pageNo: 0,    //当前页的索引      total: 0,     //总的数据条数      pageTotal: 0   //总的页数     }    }   }

根据用户入参,我们可以使用计算属性来计算一个总页数的变量:

computed: {   //计算总页数,如果传了pageTotal,直接取pageTotal的值,如果传了total,那么根据pageSize去计算   pageTotal(){    const config = this.pageConfig    if(config.pageTotal){     return config.pageTotal    }else {     if(config.pageSize && config.total){      return Math.ceil(config.total/config.pageSize)     }else {      return 0     }    }   }  }

有了总页数,和当前页,就需要各种判断来实现我们的html部分了,这里分4中情况

  1. 总页数小于8,只需要直接遍历到8就行了。

  2. 总页数大于8,但当前页小于4的。

  3. 总页数大于8,当前页靠后的。

  4. 总页数大于8,当前页在中间的。

下面看具体的实现:

                        

可以看到页面上需要实现3个方法,分别是上下页,和点击页面的方法。

methods: {   prePage(){    this.currentPage -= 1    this.$emit('changeCurrentPage',this.currentPage)   },   nextPage(){    this.currentPage += 1    this.$emit('changeCurrentPage',this.currentPage)   },   changeCurrentPage(i){    this.currentPage = i    this.$emit('changeCurrentPage',this.currentPage)   }  }

以上就是 pageComponent.vue 的大致实现了,每次页面改变,都会触发一个 changeCurrentPage 方法的回调,用来通知当前使用组件的页面当前页已经改变。

pageComponentsTest.vue的实现

引用页面就比较简单了,只要传入组件需要的对应的参数,就能显示我们的组件了。 引用部分:

配合入参部分:

{  name: "pageComponentsTest",  data() {   return {    pageConfigTotal:{total:21,pageSize:10,pageNo:1},    pageConfigPageTotal:{total:21,pageSize:10,pageNo:1,pageTotal:50}   }  },  components:{'page-component':pageComponent},  methods: {   changePage(page){    this.pageConfigTotal.pageNo = page   }  } }

读到这里,这篇"使用vue如何实现一个分页组功能"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。

0