当前位置:首页 > VUE

Vue和elementui实现分页

2026-02-22 06:51:03VUE

Vue 与 Element UI 实现分页的方法

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

安装 Element UI

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

npm install element-ui

main.js 中引入 Element UI:

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 的示例:

Vue和elementui实现分页

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全局loading实现

Vue全局loading实现

Vue全局Loading的实现方法 使用Vue插件封装全局Loading组件 创建一个独立的Loading组件,通过Vue插件机制注册为全局组件或方法。 <template> <…

前端vue实现分页

前端vue实现分页

前端Vue实现分页的方法 在Vue中实现分页功能可以通过多种方式完成,以下是常见的实现方法: 使用Element UI的分页组件 Element UI提供了现成的分页组件el-pagination,…

vue搜索分页实现

vue搜索分页实现

Vue 搜索分页实现方法 基本思路 搜索分页通常需要结合后端API,前端通过Vue组件实现搜索框、分页器和数据列表的联动。核心逻辑包括:监听搜索输入变化、分页参数变化,触发数据请求并更新视图。 实现…

Vue实现位置切换

Vue实现位置切换

Vue实现元素位置切换的方法 在Vue中实现元素位置切换可以通过多种方式实现,以下列出几种常见方法: 使用v-if/v-else指令 通过条件渲染切换两个元素的位置,适合简单场景: <…

Vue实现过期退出

Vue实现过期退出

Vue实现过期退出功能的方法 在Vue应用中实现过期退出功能通常涉及以下步骤: 设置登录状态和过期时间 在用户登录成功后,将token和过期时间存储在本地存储或Vuex中: localStora…

Vue实现点击div实现图片切换

Vue实现点击div实现图片切换

实现思路 通过Vue的数据绑定和事件监听,动态修改当前显示的图片路径或索引,实现点击div切换图片的效果。核心是利用v-on监听点击事件,并结合v-bind动态绑定图片的src属性。 基础实…