只要涉及到数据查询,通常我们都会进行分页查询。
假设你的表中有上百万条记录,不分页的话,我们不可能一次性将所有数据全部都载入到前端吧,那前后端都早就崩溃了。
Spring 和 Vue 都提供了开箱即用的分页功能。
Spring 主要用来处理后端的分页查询,VUE 主要在前端展示页面和进行下一个页面的查询。
有关后端 Spring 如何进行分页查询的方法,请参考:Spring Data @Repository 的分页查询 中的文章。
如果你配置得当,Spring 会将整个查询的页面信息发送给前端。
比如我们说的这一部分,在这部分中,我们会知道总共查询的记录有多少,每一页的大小,一共有多少页,当前是第几页等分页最重要的信息。
VUE 的前端可以用 Pagination 这个组件 Pagination | Components | BootstrapVue
我们直接在前端调用模板,将参数设置进来就完成了。
代码可以精简到只有下面几句话:
- <b-pagination
- v-model="pagedData.number"
- :total-rows="pagedData.totalElements"
- :per-page="pagedData.size"
- @click="pageSearch(pagedData.number -1)"
- class="pagination pagination-rounded justify-content-end mb-2"
- ></b-pagination>
不用重复做无用的事情了。
第一个参数是当前的页面是第几页。
第二个参数为一共有多少条记录。
第三个参数为当前分页的页面大小。
第四个参数为,如果页码被单击了,我们会触发一个什么样的函数,通常这个函数就是通过 AJAX 的调用到后台再获取一次数据。
是不是简单到令人发指。
如果没有这个模板的话,我们需要手写分页,还要算页面编码,真心没必要。
如果想使用不同的 CSS 的话,在分页模板中加入自己的 CSS 就可以了。
我们的分页效果为
页面看起来还非常干净喔。