前端处理千条数据,表格+分页

基于el-table

特殊情况,后端不想干了,给了整整500多条数据,不分页,两眼一摸黑

理论上这种数据量还是要交给后端的  因为前端的处理会卡顿

但是还是得干!

首先 分析下数据是一个数组 包含500条数据,肯定不能直接渲染,要不然就想上面的图一样了

准备饿了么表单和分页:

    <el-table :data="tableData" border stripe style="width: 100%">
            ...
      </el-table>
   <el-pagination
        @size-change="handleSizeChange"
        @current-change="handleCurrentChange"
        :current-page="query.pageNum"
        :page-sizes="[2, 3, 4, 5]"
        :page-size="query.pageSize"
        layout="total, sizes, prev, pager, next, jumper"
        :total="query.total"
      ></el-pagination>
  

 前端接收数据 ,计算当前页码的起始和结束位置,从 DataAll 中截取对应的数据,并将截取的数据赋值给 this.tableData,同时保留原始数据量以便显示总数据量

计算总页数。通过将总数据量除以每页显示的数据量并向下取整,再乘以每页显示的数据量并加1,得到总页数。

      
     // 取数据  
    const DataAll = res.data.data;  
     // 先置空 
     this.tableData = [];
      // 计算当前页码的起始位置
      const strlength = (this.query.pageNum - 1) * this.query.pageSize + 1;
      // 计算当前页码的结束位置
      const endlength = this.query.pageNum * this.query.pageSize;
      // 计算总页数
      const resStrLength = Math.floor((DataAll.length - 1) / this.query.pageSize)   
      * this.query.pageSize + 1;
      // 如果当前页码大于总页数,则将当前页码设置为总页数
      if (strlength > resStrLength) {  strlength = resStrLength;  }
      // 截取当前页码的数据
      this.tableData = DataAll.slice(strlength - 1, endlength);
      this.query.total = DataAll.length;

接下来分页就好弄了

   handleSizeChange(val) {
      this.query.pageSize = val;
    //刷新数据
      this.getData();
    },
    handleCurrentChange(val) {
      this.query.pageNum = val;
      this.getData();
    }

分页完成! 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值