使用PageInfo做分页时手动设置参数的实现方式

本文介绍了在项目开发中使用PageInfo进行手动分页的实现方式,以应对统计接口调用情况时需要对大量数据进行分类整理后的分页展示。详细讲解了PageInfo类的参数含义,并提供了手动设置分页参数的方法,帮助开发者理解并实现手动分页功能。
摘要由CSDN通过智能技术生成

使用PageInfo做分页时手动设置参数的实现方式

转载请标明出处:
原文首发于: http://www.zhangruibin.com
本文出自 RebornChang的博客

在做项目开发的时候,pagehelper是我们经常使用的一个分页插件,源码地址:com.github.pagehelper。
针对com.github.pagehelper的基本使用方法及介绍在这片博文中就不进行介绍了,不知道pagehelper是什么或者不清楚怎么用的朋友请自行百度,这里不再赘述。
博主写技术文章一般喜欢嵌套在现实的生产开发中进行介绍,本次的介绍也依然是博主在进行项目开发的时候遇到的问题,因为走了写弯路,所以写出来以供参考。

需求背景

在一个项目中我们有很多需要调用外部接口,所以客户想要一个对这些接口的调用情况统计,比如说接口A,调用了多少次,每次成功还是失败,携带的参数以及返回的参数是什么,请求的响应时间是多少。基于这个需求引出了下面的这个问题:统计的时候,对统计结果怎样分页。

统计结果进行分页

如果直接使用pagehelper进行分页的话,就直接限制到了数据库执行sql的分页,这样就不能保证数据的完整性,因为我要在页面上展示的20条数据,可能是由几万条数据进行分类整理统计出来的20条信息,那就不能用pagehelper进行自动分页了,这时候就需要手动分页。

手动分页所需的类PageInfo里面各参数含义

//当前页
 private int pageNum;
 //每页的数量
 private int pageSize;
 //当前页的数量
 private int size;
 //当前页展示的数据的起始行
 private int startRow;
 //当前页展示的数据的结束行
 private int endRow;
 //总记录数--所需要进行分页的数据条数
 private long total;
 //总页数
 private int pages;
 //页面展示的结果集,比如说当前页要展示20条数据,则此list为这20条数据
 private List<T> list;
 //前一页页码
 private int prePage;
 //下一页页码
 private int nextPage;
 //是否为第一页,默认为false,是第一页则设置为true
 private boolean isFirstPage ;
 //是否为最后一页默认为false,是最后一页则设置为true
 private boolean isLastPage ;
 //是否有前一页,默认为false,有前一页则设置为true
 private boolean hasPreviousPage ;
 //是否有下一页,默认为false,有后一页则设置为true
  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您介绍一下如何利用PageInfo组件手动实现分页。 首先,需要安装和导入PageInfo组件。在Vue项目中,可以使用npm或yarn安装PageInfo组件,然后在需要使用的组件中导入即可。 接下来,在data中定义需要分页的数据和分页相关的参数,比如当前页数、每页显示的数据数量、总页数等。 然后在mounted中获取初始数据,并计算出总页数等分页相关的参数。 接着,在template中使用v-for指令循环渲染数据,并使用v-if指令判断当前数据是否需要显示。 最后,在template中使用PageInfo组件渲染分页组件,并绑定相关参数,比如当前页数、总页数等。 下面是一个简单的示例代码: ``` <template> <div> <ul> <li v-for="(item, index) in currentPageData" :key="index" v-if="shouldShowItem(index)"> {{ item }} </li> </ul> <PageInfo :current-page="currentPage" :total-pages="totalPages" @page-change="handlePageChange" /> </div> </template> <script> import PageInfo from 'vue-pageinfo' export default { components: { PageInfo }, data() { return { data: [], // 需要分页的数据 currentPage: 1, // 当前页数 pageSize: 10, // 每页显示的数据数量 totalPages: 0 // 总页数 } }, mounted() { // 获取初始数据 this.getData() }, methods: { getData() { // 获取数据,并计算出总页数 // ... this.totalPages = Math.ceil(this.data.length / this.pageSize) }, shouldShowItem(index) { // 判断当前数据是否需要显示 return index >= (this.currentPage - 1) * this.pageSize && index < this.currentPage * this.pageSize }, handlePageChange(page) { // 处理页数改变事件 this.currentPage = page } }, computed: { currentPageData() { // 计算当前页的数据 return this.data.slice((this.currentPage - 1) * this.pageSize, this.currentPage * this.pageSize) } } } </script> ``` 希望对您有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值