前端实现el-pagination分页组件纯前端分页使用方法

这篇具有很好参考价值的文章主要介绍了前端实现el-pagination分页组件纯前端分页使用方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

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;
      });
    },
 }

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

参考: https://blog.csdn.net/weixin_48337566/article/details/123927320

https://blog.csdn.net/weixin_45181761/article/details/108637343文章来源地址https://www.toymoban.com/news/detail-606376.html

到了这里,关于前端实现el-pagination分页组件纯前端分页使用方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包