欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

vue+elementUI组件table实现前端分页功能

程序员文章站 2022-06-25 12:54:16
前端分页和后端分页就是请求的差异,前端分页的话只请求一次,所以要在render table组件的时候控制下数据 :data="tabledata.slice((currentpa...

前端分页和后端分页就是请求的差异,前端分页的话只请求一次,所以要在render table组件的时候控制下数据

:data="tabledata.slice((currentpage-1)*pagesize,currentpage*pagesize)"   //不多解释

再就是设置分页器total等于table数据的长度

:total="tabledata.length"

点击分页器的操作

methods: {
    handlesizechange(val) {
      console.log(`每页 ${val} 条`);
      this.currentpage = 1;
      this.pagesize = val;
    },
    handlecurrentchange(val) {
      console.log(`当前页: ${val}`);
      this.currentpage = val;
    }
  }

千言万语不如上个demo~

<template>
  <div>
    <el-table :data="tabledata.slice((currentpage-1)*pagesize,currentpage*pagesize)" style="width: 100%">
      <el-table-column prop="date" label="日期" width="180">
      </el-table-column>
      <el-table-column prop="name" label="姓名" width="180">
      </el-table-column>
      <el-table-column prop="address" label="地址">
      </el-table-column>
    </el-table>
    <!-- 分页器 -->
    <div class="block" style="margin-top:15px;">
      <el-pagination align='center' @size-change="handlesizechange" @current-change="handlecurrentchange" :current-page="currentpage" :page-sizes="[1,5,10,20]" :page-size="pagesize" layout="total, sizes, prev, pager, next, jumper" :total="tabledata.length">
      </el-pagination>
    </div>
  </div>
 
</template>
 
 <script>
export default {
  data() {
    return {
      tabledata: [
        {
          date: "2016-05-02",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1518 弄"
        },
        {
          date: "2016-05-04",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1517 弄"
        },
        {
          date: "2016-05-01",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1519 弄"
        },
        {
          date: "2016-05-03",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1516 弄"
        }
      ],
      currentpage: 1, // 当前页码
      total: 20, // 总条数
      pagesize: 1 // 每页的数据条数
    };
  },
  methods: {
    handlesizechange(val) {
      console.log(`每页 ${val} 条`);
      this.currentpage = 1;
      this.pagesize = val;
    },
    handlecurrentchange(val) {
      console.log(`当前页: ${val}`);
      this.currentpage = val;
    }
  }
};
</script>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。