使用的是elements里的分页的组件,也可以自己封装分页组件
1.首先是使用的组件库,首先要正确的安装引用组件,才可以在项目中使用,具体代码如下
<!-- 分页部分 -->
<div class="pagination-container">
<el-pagination
background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
layout="total, sizes,prev, pager, next,jumper"
:page-size="queryParams.pageSize"
:page-sizes="[5, 10, 15]"
:current-page.sync="queryParams.pageNum"
:total="total"
>
</el-pagination>
</div>
// 分页参数
handleSizeChange(val) {
this.queryParams.pageNum = 1;
this.queryParams.pageSize = val;
this.getfetlist();
},
handleCurrentChange(val) {
this.queryParams.pageNum = val;
this.getfetlist();
},
这是简单的基础分页,具体来讲,当页面一共展示五页的数据,删除第五页的最后一条数据时应该自动跳转到第四页,这是需要和我们页面的数据联系到一起
getList() {
this.listLoading = true;
fetchListAll(this.queryParams).then((response) => {
this.listLoading = false;
this.list = response.data.list;
this.total = response.data.total;
this.totalPage = response.data.totalPage;
this.pageSize = response.data.pageSize;
const lastPageLength = this.total % this.queryParams.pageSize;
if (
lastPageLength === 0 &&
this.queryParams.pageNum >
Math.floor(this.total / this.queryParams.pageSize)
) {
this.queryParams.pageNum--;
this.getList();
}
});
},
-
lastPageLength
的计算: 这一行代码计算出最后一页的长度,即总数 (this.total
) 对每页大小 (this.queryParams.pageSize
) 取余数。这可以用来检查最后一页是否完全填满了结果。 -
条件判断: 接下来的条件判断语句使用
if
语句来检查两个条件:lastPageLength === 0
:如果最后一页的长度为0,意味着结果正好填满了所有页面。this.queryParams.pageNum > Math.floor(this.total / this.queryParams.pageSize)
:当前页码大于总页数时,执行下面的操作。
-
分页处理: 如果上述条件都满足,那么会执行下面的操作:
this.queryParams.pageNum--
:将页码减少1,以便回到上一页。this.getList()
:调用getList
方法来获取更新后的列表数据。
这样就可以实现一个完整的分页效果!!!!!!!!!!!!!!