zoukankan      html  css  js  c++  java
  • vue+element处理前端分页

    需求:后台返回所有数据,前端实现分页效果。

    由于数据量太大,加载很慢,页面也会造成卡顿现象,做成滚动条形式的不太合适

    <div class="same-table">
           <el-table
                  :data="dataShow"
                  border
                  ref="recordTable"
                  :header-cell-style="{textAlign: 'center'}"
                  :cell-style="{ textAlign: 'center' }"
                  style=" 100%;"
                  height="400">
                  <el-table-column prop="projectName" label="项目名称" fixed></el-table-column>
            </e-table>
    </div>
    

      

    data(){
        return {
            rightsList: [],
            totalPageData: [],  //数组内套数组,每个数组就是一页数据
            currentPage: 1,     //当前显示页码
            pageSize: 10,       //每页显示的数量
            pageNum: 1,         //总页数
           totals: 0,          //总数量
           dataShow: [],       //当前要显示的数据 
        }
    },
    created() {
         this.getSystemDataSource();
    },
    methods() {
         //获取本月数据来源具体信息
           getSystemDataSource() {
              systemDataSourceApi.systemDataSource().then(res => {
                  this.loginUser = res.result.loginUser;
                  this.rightsList = res.result.pushData;
                  this.totals = res.result.pushData.length;
                  this.calcPageData();
              })
          },
          //计算页数
          calcPageData() {
                 if (this.rightsList.length > 1) {
                     this.pageNum = Math.ceil(this.rightsList.length / this.pageSize) || 1;
                       console.log(this.pageNum, '总页数');
                    }
                 for(let i = 0; i< this.pageNum; i++) {
                        //每一页都是一个数组,根据每页显示数量 将后台的数据分割到 每一页,假设pageSize为10, 则第一页是1-10条,即slice(0,10)
                        this.totalPageData[i] = this.rightsList.slice(this.pageSize * i, this.pageSize * (i+1));
                  }
                  //获取到数据后显示第一页内容,数组下标是从0开始,所以要减1
                  this.dataShow = this.totalPageData[this.currentPage - 1];
                  console.log(this.rightsList, '要显示的数据')
                },
                //每页显示的条数改变时候触发
                handleSizeChange(newPageSize) {
                    this.pageSize = newPageSize;
                    this.calcPageData();
                },
                //当前页改变时候触发
                handleCurrentChange(newPageSize) {
                    this.currentPage  = newPageSize;
                    this.dataShow = this.totalPageData[newPageSize - 1];
                }
    }
    

      

  • 相关阅读:
    express学习
    安装MongoDB步骤
    js事件流
    关于html,css,js三者的加载顺序问题
    重写JS的鼠标右键点击菜单
    深入JS原型与原型链
    eureka学习(二)
    eureka学习(一)
    mysql学习-explain中的extra
    mysql学习-explain
  • 原文地址:https://www.cnblogs.com/theblogs/p/14927061.html
Copyright © 2011-2022 走看看