当前位置:首页 > 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:

elementui vue 实现表格分页

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 方法截取数据。

    elementui vue 实现表格分页

  2. 分页组件事件

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

后端分页示例

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

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 实现简单表格的方法 使用原生 HTML 表格 在 Vue 模板中可以直接使用 HTML 原生表格标签,通过 v-for 动态渲染数据: <template> <tabl…

vue实现后台分页

vue实现后台分页

Vue 实现后台分页的方法 分页组件与数据绑定 在 Vue 中实现后台分页通常需要结合分页组件和后端 API。使用 el-pagination(Element UI)或自定义分页组件,通过 v-mod…

vue表格实现导出

vue表格实现导出

使用 vue-json-excel 插件 安装插件: npm install vue-json-excel --save 在组件中引入并注册: import JsonExcel from 'vue…

vue实现表格输入

vue实现表格输入

Vue实现表格输入的方法 基础表格实现 使用v-for指令动态渲染表格行和列,结合v-model实现双向数据绑定。 <template> <table> <…

css表格的制作方法

css表格的制作方法

表格基础结构 使用HTML的<table>标签创建表格框架,搭配<tr>定义行,<td>定义单元格。例如: <table> <tr>…

vue实现表格编辑

vue实现表格编辑

Vue 实现表格编辑的方法 在 Vue 中实现表格编辑功能可以通过多种方式完成,以下是几种常见的方法: 使用 v-model 绑定数据 通过 v-model 绑定表格数据,结合 v-for 动态渲染…