前端js的数据纯前端分页通用方法封装

用elementui分页组件的话可以直接用这个函数

将拿到的总的数据缓存起来,然后分别在切换页数,翻页的时候调用这个方法既可

复制代码
/**
 * 前端分页,不再次请求接口,不破坏原数组list
 * @param list 请求接口返回的全部数据
 * @param pageSize 一页展示的数据个数
 * @param currentPage 当前页码
 * @returns []
 */
export function getPagination (list, pageSize, currentPage) {
  let dataSource = [];
  if (list.length < pageSize) {
    //判断当前获取的接口数据的长度是否大于设置的展示个数(总页数是否大于1)
    const index = (currentPage - 1) * pageSize;
    dataSource = list.slice(index, pageSize);//截取当页展示数据
  } else if (currentPage === Math.ceil(list.length / pageSize)) {
    //当前页码是否为最后一页
    const index = (currentPage - 1) * pageSize;
    dataSource = list.slice(index);
  } else {
    /**
     * 若总页数大于1,且当前页码不是最后一页时
     * 获取下标(index)截取数据(dataSource)
    */
    const index = (currentPage - 1) * pageSize;
    dataSource = list.slice(index, currentPage * pageSize);
  }
  return dataSource;
}
复制代码

 

posted @   人在路途  阅读(56)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
历史上的今天:
2020-10-21 vue中纯前端实现导出简单Excel表格的功能
点击右上角即可分享
微信分享提示