当前位置:首页 > 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组件传值实现分页的方法 在Vue中实现分页功能,通常需要父子组件之间的数据传递。以下是几种常见的传值方式: 使用props传递数据 父组件通过props向子组件传递当前页码和总页数等分页信息:…

vue  实现分页

vue 实现分页

实现分页功能 在Vue中实现分页功能通常需要结合后端API或前端数据处理。以下是两种常见的实现方式: 前端分页实现 适用于数据量较小的情况,所有数据一次性加载到前端后进行分页处理: <t…

php实现分页功能

php实现分页功能

PHP实现分页功能的方法 数据库查询与分页逻辑 使用SQL的LIMIT和OFFSET实现分页。假设每页显示10条数据,当前页码为$page: $perPage = 10; $page = isset…

vue 分页的实现

vue 分页的实现

分页组件实现 使用Vue实现分页功能通常需要结合后端API和前端组件。以下是一种常见的实现方式: 模板部分 <template> <div class="pagina…

jquery 分页

jquery 分页

实现 jQuery 分页的方法 客户端分页实现 使用 jQuery 实现客户端分页的核心思路是通过 JavaScript 控制数据的显示与隐藏。假设有一个包含数据的 HTML 列表或表格: //…

使用vue实现表格

使用vue实现表格

使用 Vue 实现表格 Vue.js 提供了灵活的方式来实现表格功能,可以通过组合 v-for 指令和动态数据绑定快速构建表格。以下是几种常见的实现方法: 基础表格实现 通过 v-for 遍历数组数…