又是被后端欺侮的一天,做了个公司的老我的项目,表格分页后端没法做,那就只能前端来实现。这里我介绍两种办法,须要的自提。

一、实现思路:前端拿到表格的所有数据,而后对数据进行解决,紧接着操作分页。

1、表格数据

<template>  <div class="home">    <el-table :data="tableData" style="width: 100%">      <el-table-column prop="id" label="ID" width="180"></el-table-column>      <el-table-column prop="phone" label="电话" width="180"></el-table-column>      <el-table-column prop="userName" label="用户名"></el-table-column>    </el-table>    <!--分页-->    <el-pagination      @size-change="handleSizeChange"      @current-change="handleCurrentChange"      :current-page="currentPage"      :page-sizes="pageSizes"      :page-size="pageSize"      layout="total, sizes, prev, pager, next, jumper"      :total="total"    >    </el-pagination>  </div></template>

2、分页定义属性

 data() {    return {      currentPage: 1, //当前页      total: 0, //总条数      list: [], //后盾返回的所有后果      tableData: [], //以后页码的表格数据      pageSize: 10, //当前页容量      pageSizes: [10, 20, 30, 40, 50],    };  },

3、分页逻辑解决

 methods: {    //切换每页条数容量    handleSizeChange(val) {             this.currentPage = 1;      this.pageSize = val;      this.getList();    },    //切换当前页    handleCurrentChange(val) {          this.currentPage = val;      this.getList();    },    //获取表格数据    getList() {         getList().then((res) => {        this.list = res.data.data;    //总数组        this.total = res.data.data.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;    },  },

4、初始化调用

created() {     this.getList();},

二、实现思路:间接在表格中操作

1、表格数据处理

<el-table :data="tableData.slice((currentPage - 1) * pageSize, currentPage * pageSize)" > ... </el-table>

2、分页表格解决

<div>  <el-pagination      @size-change="handleSizeChange"      @current-change="handleCurrentChange"      :current-page="currentPage"      :page-sizes="pageSizes"      :page-size="pageSize"      layout="total, sizes, prev, pager, next, jumper"      :total="total"    >    </el-pagination></div>

3、分页定义属性

data() {    currentPage: 1, //当前页    total: 0, //总条数    tableData: [], //以后页码的表格数据    pageSize: 10, //当前页容量    pageSizes: [10, 20, 30, 40, 50], }

4、分页逻辑解决

 methods: {    //切换每页条数容量    handleSizeChange(val) {             this.currentPage = 1;      this.pageSize = val;      this.getList();    },    //切换当前页    handleCurrentChange(val) {          this.currentPage = val;      this.getList();    },    //获取表格数据    getList() {         getList().then((res) => {        this.total = res.data.data.length;      //总条数        this.tableData = res.data.data;      });    }, }

两种办法都可,第二个比较简单。