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

分页实现vue

分页实现方法(Vue) 使用Element UI分页组件 安装Element UI库后,可以直接使用其分页组件。在模板中添加el-pagination,通过v-model绑定当前页码,设置page-s…

vue实现分页条数

vue实现分页条数

Vue 实现分页条数控制 在 Vue 中实现分页条数控制通常需要结合分页组件和后端 API 支持。以下是几种常见的实现方式: 使用 Element UI 的分页组件 Element UI 提供了强大…

vue前端实现分页

vue前端实现分页

实现分页的基本思路 在Vue中实现分页通常需要结合后端API返回的数据和前端的分页组件。核心逻辑包括计算总页数、处理当前页码变化以及动态加载数据。 使用Element UI的分页组件 Element…

vue加载实现分页

vue加载实现分页

Vue 实现分页加载的方法 使用 Element UI 的分页组件 安装 Element UI 后,可以直接使用其分页组件。在模板中添加分页组件,并绑定相关事件和数据。 <template&g…

Vue怎么实现rem

Vue怎么实现rem

Vue中实现rem适配的方法 在Vue项目中实现rem适配,可以通过以下步骤完成。rem(root em)是相对于根元素(html)字体大小的单位,常用于移动端适配。 安装postcss-pxtor…

vue实现分页按钮

vue实现分页按钮

实现分页按钮的基本思路 在Vue中实现分页按钮通常需要结合计算属性、事件绑定和动态样式。核心逻辑包括计算总页数、生成页码数组、处理页码切换事件以及高亮当前页码。 基础实现代码示例 <templ…