<!--分页-->
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="currentPage"
:page-size="pageSize"
layout="total, prev, pager, next, jumper"
:total="total"
>
</el-pagination>
data() {
return {
currentPage: 1, //当前页
total: 0, //总条数
list: [], //后台返回的所有结果
tableData: [], //当前页码的表格数据
pageSize: 12 //当前页容量
}
},
//切换每页条数容量
handleSizeChange(val) {
this.pageSize = val
this.currentPage = 1
this.getList()
},
//切换当前页
handleCurrentChange(val) {
this.currentPage = val
this.getList()
},
//获取表格数据
getList() {
this.list = this.currentList //后台返的数据
this.total = this.currentList.length //总条数
this.tableData = this.getNeedArr(this.list, this.pageSize)[this.currentPage - 1] //当前页的表格数据
},
//纯前端处理分页,进行长度分割
getNeedArr(array, size) {
//获取所需指定长度分割的数组;参数1为用于分割的总数组,参数2为分割数组后每个小数组的长度
const length = array.length
//判断不是数组,或者size没有设置,size小于1,就返回空数组
if (!length || !size || size < 1) {
return []
}
//核心部分
let index = 0 //用来表示切割元素的范围start
let resIndex = 0 //用来递增表示输出数组的下标
//根据length和size算出输出数组的长度,并且创建它。
let result = new Array(Math.ceil(length / size))
//进行循环
while (index < length) {
//循环过程中设置result[0]和result[1]的值。该值根据array.slice切割得到。
result[resIndex++] = array.slice(index, (index += size))
}
//输出到新数组
return result
}
element-el-pagination 分页-纯前端处理分页
最新推荐文章于 2024-05-30 15:07:12 发布