当前位置:首页 > VUE

Vue和elementui实现分页

2026-02-22 06:51:03VUE

Vue 与 Element UI 实现分页的方法

在 Vue 项目中结合 Element UI 实现分页功能,可以通过以下步骤完成。Element UI 提供了 <el-pagination> 组件,能够快速集成分页功能。

安装 Element UI

确保项目中已安装 Element UI。若未安装,可以通过以下命令安装:

Vue和elementui实现分页

npm install element-ui

main.js 中引入 Element UI:

Vue和elementui实现分页

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

Vue.use(ElementUI);

分页组件的基本使用

在 Vue 组件中,使用 <el-pagination> 组件实现分页。以下是一个完整示例:

<template>
  <div>
    <el-table :data="currentTableData" style="width: 100%">
      <el-table-column prop="date" label="日期"></el-table-column>
      <el-table-column prop="name" label="姓名"></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: [], // 原始数据
      currentTableData: [], // 当前页显示的数据
      currentPage: 1, // 当前页码
      pageSize: 10, // 每页显示条数
      total: 0, // 总数据量
    };
  },
  created() {
    this.fetchData();
  },
  methods: {
    fetchData() {
      // 模拟数据请求
      this.tableData = [
        { date: '2023-01-01', name: '张三', address: '北京市' },
        { date: '2023-01-02', name: '李四', address: '上海市' },
        // 更多数据...
      ];
      this.total = this.tableData.length;
      this.updateCurrentTableData();
    },
    updateCurrentTableData() {
      const start = (this.currentPage - 1) * this.pageSize;
      const end = start + this.pageSize;
      this.currentTableData = this.tableData.slice(start, end);
    },
    handleSizeChange(val) {
      this.pageSize = val;
      this.updateCurrentTableData();
    },
    handleCurrentChange(val) {
      this.currentPage = val;
      this.updateCurrentTableData();
    },
  },
};
</script>

关键点说明

  1. current-page:绑定当前页码,初始值为 1。
  2. page-size:绑定每页显示的数据条数,初始值为 10。
  3. total:绑定总数据量,用于计算总页数。
  4. page-sizes:设置每页显示条数的可选值。
  5. layout:定义分页组件的布局,包含分页按钮、跳转输入框等。
  6. @size-change:每页显示条数变化时触发的事件。
  7. @current-change:当前页码变化时触发的事件。

分页逻辑

  • 通过 slice 方法从原始数据中截取当前页的数据。
  • handleSizeChangehandleCurrentChange 方法中更新 currentTableData

后端分页

如果数据量较大,通常需要后端分页。以下是一个结合后端 API 的示例:

methods: {
  fetchData() {
    axios.get('/api/data', {
      params: {
        page: this.currentPage,
        size: this.pageSize,
      },
    }).then(response => {
      this.currentTableData = response.data.list;
      this.total = response.data.total;
    });
  },
  handleSizeChange(val) {
    this.pageSize = val;
    this.fetchData();
  },
  handleCurrentChange(val) {
    this.currentPage = val;
    this.fetchData();
  },
}

总结

  • 前端分页适用于数据量较小的场景,直接通过 slice 截取数据。
  • 后端分页适用于数据量大的场景,通过 API 传递分页参数获取数据。
  • <el-pagination> 组件提供了丰富的事件和属性,灵活配置即可满足需求。

标签: 分页Vue
分享给朋友:

相关文章

Vue函数实现

Vue函数实现

在Vue中实现函数可以通过多种方式,具体取决于使用场景(选项式API、组合式API或生命周期钩子)。以下是常见方法: 方法1:选项式API中的methods 在Vue 2或选项式API中,函数通常定…

vue 分页 实现

vue 分页 实现

Vue 分页实现方法 使用 Element UI 分页组件 Element UI 提供了现成的分页组件 el-pagination,适合快速集成。需要先安装 Element UI 库。 安装 Ele…

php分页代码简单实现

php分页代码简单实现

基本分页实现 在PHP中实现分页功能通常需要结合MySQL的LIMIT子句。以下是一个基础实现示例: <?php // 数据库连接 $conn = mysqli_connect("localh…

Vue实现手机推送

Vue实现手机推送

Vue 中实现手机推送的方法 在 Vue 项目中实现手机推送功能,通常需要结合第三方推送服务(如 Firebase Cloud Messaging、极光推送等)或原生移动端能力(通过 Cordova/…

uniapp 分页组件

uniapp 分页组件

uniapp 分页组件实现方法 在uniapp中实现分页功能,可以通过自定义组件或使用第三方组件库完成。以下是几种常见实现方式: 自定义分页组件 创建一个名为uni-pagination的组件,模…

php分页功能的实现

php分页功能的实现

分页功能的基本原理 分页功能的核心是通过SQL的LIMIT子句实现数据分段查询。LIMIT接受两个参数:起始位置偏移量和每页记录数。例如查询第2页(每页10条)的SQL语句为: SELECT *…