前端使用vue框架中简单的分页实现方法
dearweb 发布:2021-11-05 09:31:08阅读:在之前mvc架构开发的时候我们如果实现分页,一般是后端把数据给我们,然后我们直接渲染到页面,随着技术的发展,对前端的要求也越来越高了,有些场景需要前端来实现长列表以及分页的功能,这就对我们的技术提出了更高的要求,本文小编主要介绍一下前端vue框架中实现分页的方法。
我们需要设置的变量
接收后端数据、每页展示的数据、分页数量、当前页面
data() { return { // 后台传来的数据来源 data: [], // 所有页面的数据 totalPage: [], // 每页显示数量 pageSize: 5, // 总页数 pageNum: 1, // 当前显示的数据 dataShow: [], // 当前显示第几页 currentPage: 0 }; },
首先我们计算一下总的页码
主要目的是为了渲染页码,有了总页码我们就可以直接渲染页码了。
// 这里简单模拟一下后台传过来的数据 for (let i = 0; i < 601; i++) { this.data.push({ name: "liu" ,look:"very handsome"}); } // 根据后台数据的条数和每页显示数量算出一共几页,得0时设为1 ; this.pageNum = Math.ceil(this.data.length / this.pageSize) || 1;
渲染页码
for (let i = 0; i < this.pageNum; i++) { // 每一页都是一个数组 形如 [['第一页的数据'],['第二页的数据'],['第三页数据']] // 根据每页显示数量 将后台的数据分割到 每一页,假设pageSize为5, 则第一页是1-5条,即slice(0,5),第二页是6-10条,即slice(5,10)... this.totalPage[i] = this.data.slice(this.pageSize * i, this.pageSize * (i + 1)) } // 获取到数据后显示第一页内容 this.dataShow = this.totalPage[this.currentPage];
然后我们设置上一页下一页
// 上一页和下一页 // 下一页 nextPage() { if (this.currentPage === this.pageNum - 1) return ; this.dataShow = this.totalPage[++this.currentPage]; }, // 上一页 prePage() { if (this.currentPage === 0) return ; this.dataShow = this.totalPage[--this.currentPage]; }
通过以上的设置,前端整个页码功能就制作完毕了,当然你还可以拓展制作一下长列表展示,我会在后面的文章中介绍长列表渲染的方法,记住网址不迷路喔。
小礼物走一波,支持作者
赏还没有人赞赏,支持一波吧