当前位置:首页 > VUE

elementui vue 实现表格分页

2026-02-22 20:41:08VUE

使用 ElementUI 和 Vue 实现表格分页

ElementUI 提供了 el-tableel-pagination 组件,可以方便地实现表格分页功能。以下是实现步骤:

安装 ElementUI

确保项目中已安装 ElementUI。如果未安装,可以通过以下命令安装:

npm install element-ui -S

引入 ElementUI

在项目的入口文件(如 main.js)中引入 ElementUI:

import Vue from 'vue';
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';

Vue.use(ElementUI);

实现表格分页

以下是一个完整的示例代码,展示如何结合 el-tableel-pagination 实现分页功能。

模板部分

<template>
  <div>
    <el-table
      :data="tableData"
      border
      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>

    <el-pagination
      @size-change="handleSizeChange"
      @current-change="handleCurrentChange"
      :current-page="currentPage"
      :page-sizes="[10, 20, 30, 40]"
      :page-size="pageSize"
      layout="total, sizes, prev, pager, next, jumper"
      :total="total">
    </el-pagination>
  </div>
</template>

脚本部分

<script>
export default {
  data() {
    return {
      tableData: [], // 当前页显示的数据
      currentPage: 1, // 当前页码
      pageSize: 10,   // 每页显示条数
      total: 0,       // 总数据量
      allData: []     // 模拟所有数据
    };
  },
  created() {
    // 模拟获取所有数据
    this.fetchData();
  },
  methods: {
    fetchData() {
      // 模拟从后端获取数据
      this.allData = Array.from({ length: 100 }, (_, i) => ({
        date: `2023-01-${i + 1}`,
        name: `用户${i + 1}`,
        address: `地址${i + 1}`
      }));
      this.total = this.allData.length;
      this.updateTableData();
    },
    updateTableData() {
      // 根据当前页码和每页条数截取数据
      const start = (this.currentPage - 1) * this.pageSize;
      const end = start + this.pageSize;
      this.tableData = this.allData.slice(start, end);
    },
    handleSizeChange(val) {
      // 每页条数变化时触发
      this.pageSize = val;
      this.updateTableData();
    },
    handleCurrentChange(val) {
      // 当前页码变化时触发
      this.currentPage = val;
      this.updateTableData();
    }
  }
};
</script>

关键点说明

  1. 数据分页逻辑
    updateTableData 方法根据 currentPagepageSize 计算当前页显示的数据范围,通过 slice 方法截取数据。

  2. 分页组件事件

    • @size-change:每页条数变化时触发,更新 pageSize 并重新加载数据。
    • @current-change:当前页码变化时触发,更新 currentPage 并重新加载数据。
  3. 后端分页
    如果是后端分页,只需在 handleSizeChangehandleCurrentChange 中调用接口获取对应页码的数据即可。

后端分页示例

若需从后端分页,可以将 fetchData 方法改为异步请求:

elementui vue 实现表格分页

async fetchData() {
  const res = await axios.get('/api/data', {
    params: {
      page: this.currentPage,
      size: this.pageSize
    }
  });
  this.tableData = res.data.list;
  this.total = res.data.total;
}

通过以上步骤,可以轻松实现 ElementUI 表格的分页功能。

标签: 分页表格
分享给朋友:

相关文章

vue 分页的实现

vue 分页的实现

Vue 分页的实现方法 使用 Element UI 的分页组件 安装 Element UI: npm install element-ui 在 Vue 项目中引入 Element UI 的分页组件:…

vue elementui实现分页

vue elementui实现分页

使用 Element UI 实现 Vue 分页功能 Element UI 提供了 el-pagination 组件,可以方便地实现分页功能。以下是具体实现步骤: 安装 Element UI 确保项目…

vue实现导出表格

vue实现导出表格

Vue 实现导出表格的方法 使用 xlsx 库导出 Excel 安装 xlsx 库 npm install xlsx 在 Vue 组件中引入 xlsx import * as XLSX from…

vue实现表格界面

vue实现表格界面

Vue 实现表格界面的方法 使用 Element UI 的表格组件 Element UI 提供了功能丰富的表格组件,适合快速开发表格界面。安装 Element UI 后,可以直接使用 el-table…

vue实现列表分页

vue实现列表分页

Vue 列表分页实现方法 基础分页实现 安装依赖(如使用第三方库) npm install vue-paginate 模板部分示例 <template> <div>…

vue 实现数据分页

vue 实现数据分页

实现数据分页的基本思路 在Vue中实现数据分页通常需要结合前端分页逻辑和后端API支持。前端分页适合数据量较小的情况,后端分页适合大数据量场景。 前端分页实现 创建一个计算属性来分割当前页数据:…