有时后台会把数据全部返回,而前端需要自己分页。虽说这种情况比较少,但还是有的。比如某个接口查询速度太慢,如果每次换分页都要请求的话,那么用户体验是极其不好的。
前端分页主要就数据的分割,比如一页需要5条数据,那么就把所有数据按5等份分好,然后根据页数获取相应的那页数据。
代码如下:
/**
* 获取按指定数量分割数组的结果
* @params: list要分割的数组
* @params: num分割的数量
* @return: [{page:xx,data:[]},{page:xx,data:[]}...]
* /
function splitData (list, num) {
//总页数
let pages = (list.length%num===0) ? list.length/num : parseInt(list.length/num)+1;
let arr = [];
for (let i = 0; i < pages; i ++) {
let item = {};
item.page = i+1;
if (i === pages - 1) {
item.data = list.slice(i*num);
} else {
item.data = list.slice(i*num, (i+1)*num);
}
arr.push(item);
}
return arr;
}