当前位置:首页 > VUE

vue elementui 分页的实现

2026-01-20 14:46:36VUE

Vue + ElementUI 分页实现方法

安装与引入

确保已安装 ElementUI,若未安装可通过以下命令安装:

npm install element-ui -S

main.js 中全局引入:

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

基础分页组件

在模板中使用 <el-pagination> 组件:

vue elementui 分页的实现

<template>
  <el-pagination
    @size-change="handleSizeChange"
    @current-change="handleCurrentChange"
    :current-page="currentPage"
    :page-sizes="[10, 20, 30, 50]"
    :page-size="pageSize"
    layout="total, sizes, prev, pager, next, jumper"
    :total="total">
  </el-pagination>
</template>

数据绑定与方法

在脚本中定义分页相关数据和方法:

<script>
export default {
  data() {
    return {
      currentPage: 1,
      pageSize: 10,
      total: 0,
      tableData: []
    };
  },
  methods: {
    handleSizeChange(val) {
      this.pageSize = val;
      this.fetchData();
    },
    handleCurrentChange(val) {
      this.currentPage = val;
      this.fetchData();
    },
    fetchData() {
      // 模拟API请求
      const mockData = Array.from({ length: 100 }, (_, i) => ({ id: i + 1 }));
      this.total = mockData.length;
      this.tableData = mockData.slice(
        (this.currentPage - 1) * this.pageSize,
        this.currentPage * this.pageSize
      );
    }
  },
  mounted() {
    this.fetchData();
  }
};
</script>

结合表格使用

分页通常与表格配合使用:

vue elementui 分页的实现

<template>
  <el-table :data="tableData" border style="width: 100%">
    <el-table-column prop="id" label="ID"></el-table-column>
  </el-table>
  <el-pagination
    @size-change="handleSizeChange"
    @current-change="handleCurrentChange"
    :current-page="currentPage"
    :page-sizes="[10, 20, 30, 50]"
    :page-size="pageSize"
    layout="total, sizes, prev, pager, next, jumper"
    :total="total">
  </el-pagination>
</template>

自定义分页样式

通过 layout 属性可调整显示内容:

  • total:总条数
  • sizes:每页条数选择器
  • prev:上一页按钮
  • pager:页码按钮
  • next:下一页按钮
  • jumper:页码跳转输入框

远程分页实现

与后端API交互时,通常传递分页参数:

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

注意事项

  • current-pagepage-size 需使用 .sync 修饰符(Vue 2.x)或 v-model(Vue 3.x)实现双向绑定
  • 分页组件的 total 属性必须正确设置,否则分页计算会出错
  • 远程分页时需确保后端返回的数据包含总条数信息

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

相关文章

订单 vue实现

订单 vue实现

Vue 实现订单功能 数据模型设计 订单功能通常需要设计以下数据结构: // 订单数据结构 const order = { id: '', // 订单ID userId:…

vue实现选择季度

vue实现选择季度

Vue 实现选择季度的几种方法 使用下拉选择框(Select) 在 Vue 中可以通过 v-model 绑定一个下拉选择框来实现季度选择。数据可以预先定义为一个包含季度选项的数组。 <…

vue实现签约合作弹窗

vue实现签约合作弹窗

实现签约合作弹窗的步骤 使用Vue实现签约合作弹窗可以通过组件化方式完成,结合模态框和表单交互逻辑。以下是具体实现方法: 1. 创建弹窗组件 新建一个Vue组件文件(如SignContractDi…

vue实现密码框的包

vue实现密码框的包

Vue 密码框实现方案 在 Vue 中实现密码框功能,可以通过原生 HTML 结合 Vue 指令或使用第三方组件库完成。以下是几种常见方案: 原生 HTML + Vue 双向绑定 <t…

vue实现矩阵

vue实现矩阵

Vue 实现矩阵的方法 在 Vue 中实现矩阵操作可以通过多种方式完成,以下是一些常见的方法: 使用二维数组表示矩阵 矩阵可以用二维数组来表示,每个元素对应矩阵中的一个值。在 Vue 的 data…

vue 实现toast

vue 实现toast

vue 实现 toast 的方法 在 Vue 中实现 Toast 提示功能可以通过多种方式,以下是几种常见的实现方法: 使用第三方库 Vue 生态中有许多成熟的 Toast 库,例如 vue-toa…