有哪个大神知道 表格数据怎么和分页模块关联在一起吗?
首先,你要明白,表格数据和分页模块根本没有直接联系
分页模块只负责分页的显示,它其实只需要两个参数:当前页和总页数
而分页模块里这两个参数,可以和Vue里面的数据进行绑定
分页模块点击时候,会触发v-on:change
事件,而此时,当前页改变,只需要在事件方法中重新根据新的当前页数据去取表格数据即可(至于表格数据的分页,一般只要传当前页码和每页条数(假设是10条)给接口。如果是前端处理的,只需要从所有数据中的第(当前页码 - 1) * 10
开始,截取10条数据即可)
要有两个模块独立的概念, 思考他们哪些变量让他们有了关联。
其实你要做的最多也就是进行个2次封装, 将 table 与 pagination 一起封装为一个完整的表格组件。
组件内部无非就是先考虑表格 当前 展示的数据从哪里开始到哪里结束
然后考虑分页组件能分几页,当前是第几页。
假如如: const arr = new Array(1000)
, arr 为长度1000的有效数组。然后设定每一页显示几条数据(假设10条
), 那表格第一页显示的数据就为 arr[0]-arr[9]
这10条数据, 分页组件先计算总条数(1000 / 10
), 设定初始显示为第一页。
当点击页数选择分页的时候表格要展示的数据就是(假设点击了分页5
): arr[(5 - 1) * 10] - arr[5 * 10 - 1]
写的比较匆忙, 有逻辑错误的地方, 望指正。
这个很简单的,你要了解分页的原理。分页和table只是两个展示模块,表格里的数据是根据分页的页数(page)和每页的数据条数(pagesize)从数据库里查出来的。比如,page=1,pagesize=10,这时你会发出一个请求,后台查出库里相关的1-10条数据,你点击了第二页的话,page=2,pagesize=10,这时查出11-20条数据,返回来的都是data。然后你的表格只要把这个data填进去就好了。
表格只是将获取的数据渲染出来
而后台的数据有很多,通过分页可以将后台大量的数据按分组获取。
二者关联的流程应该是:
首次加载,默认第一页获取前面11条数据,然后通过v-for遍历数据显示表格,用户通过点击事件改变页数,同时向后台发送请求,获取相应页数所对映的数据,最后重新渲染。
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答4.8k 阅读✓ 已解决
4 回答4.4k 阅读✓ 已解决
4 回答1.9k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
如果是后台处理分页问题,那么你每次请求数据的时候,就要将当前页数和每页显示条数发过去,然后后台就会返回相关的数据
前台处理分页方法:
调用的时候:
computed:{