有这么个场景,后端接口的列表数据没有做分页给我,相当于是直接返回所有的列表数据,比如有100条就返回100,但是前端显示,则需要做成分页,比如10条为一页。
假如你用vue来实现,思路就是将数据切割,然后分批显示。
所以可以使用 computed
计算属性和 v-for
指令来实现前端分页。
因为后端返回给你的数据,你一般会整个存放在一个数组中,要显示第一页,其实就是在该数组中分割提取下标为0-9的数据项,如果是第三页,则在该数组中提取第20-29的数据项,创建一个计算属性,在该计算属性中完成数据的提取,再给到视图即可。
如果我需要结合elementUI
的分页组件,怎么实现呢?以下是实现方式,做得跟后端给的分页一样的效果。
这样就可以实现前端分页了。
二、通用的前端分页代码
如果你的项目中,不是用elementUI
框架,其实也很好办,主要是记住以上前端分页的思路:找到某一页的开始下标和结束下标,然后去分割数组,返回给视图。
以下是一个示例代码:
在这个示例中,我们使用 v-for
指令来遍历每一页要显示的数据,并使用 slice()
方法来获取当前页码对应的数据。我们还计算了总页数,以便在分页控件中显示所有的页码。
在模板中,我们使用 v-for
指令来遍历每一页要显示的数据,并在分页控件中使用 v-for
指令来显示所有的页码。我们在每个页码按钮上绑定了一个 click
事件,点击按钮时会更新当前页码。