基于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; },