基于elementUI分页组件实现前端分页功能
对于后端返回数据为进行分页的情况,前端可基于elementUI的分页组件实现分页效果。
第一步,使用前端分页组件
<el-table
:data="list"
border
@select="handleSelectionChange"
@select-all="handleAllSelectionChange"
>
...
</el-table>
<el-pagination
background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="listQuery.page"
:page-sizes="[10, 30, 50]"
:page-size="listQuery.pageNum"
layout="total, sizes, prev, pager, next, jumper"
:total="totalNum"
>
</el-pagination>
第二步、使用computed计算属性得到分页参数
computed: {
// 使用前端实现分页的计算数据
list() {
// 分页的起始下标
const startIndex = (this.listQuery.page - 1) * this.listQuery.pageNum;
// 分页的末尾下标
const endIndex = startIndex + this.listQuery.pageNum;
// 返回切割后的数据
return this.requestList.slice(startIndex, endIndex);
},
// 总条数
totalNum() {
return this.requestList.length;
},
// 总分页数
total() {
return Math.ceil(this.requestList.length / this.listQuery.pageNum);
},
},
data(){
return{
// 列表数据
requestList: [],
// 分页参数
listQuery: {
page: 1,
pageNum: 10,
},
}
}
第三步、绑定事件
// 每页列表数
handleSizeChange(val) {
this.listQuery.pageNum = val;
},
// 当前分页数(第几页)
handleCurrentChange(val) {
this.listQuery.page = val;
},