当前位置:首页 > 前端教程

elementui pagination

2026-03-06 01:16:55前端教程

ElementUI Pagination 基础用法

ElementUI 的分页组件 el-pagination 提供多种分页样式和功能,适用于数据表格或其他需要分页的场景。以下为基本实现方式:

<template>
  <el-pagination
    :current-page="currentPage"
    :page-size="pageSize"
    :total="total"
    @current-change="handleCurrentChange"
    layout="prev, pager, next">
  </el-pagination>
</template>

<script>
export default {
  data() {
    return {
      currentPage: 1,
      pageSize: 10,
      total: 100
    };
  },
  methods: {
    handleCurrentChange(val) {
      this.currentPage = val;
      // 此处可触发数据加载逻辑
    }
  }
};
</script>

常用属性配置

  • current-page: 当前页码,需通过 .sync 修饰符或手动更新
  • page-size: 每页显示条目数
  • total: 总数据条目数
  • page-sizes: 可选的每页显示数量数组,如 [10, 20, 50]
  • layout: 组件布局选项,支持组合 sizes, prev, pager, next, jumper, total, slot

完整布局示例:

<el-pagination
  :page-sizes="[10, 20, 50, 100]"
  :page-size="pageSize"
  layout="total, sizes, prev, pager, next, jumper"
  :total="400">
</el-pagination>

事件处理

  • size-change: 当 page-size 改变时触发
  • current-change: 当 current-page 改变时触发
  • prev-click: 点击上一页按钮时触发
  • next-click: 点击下一页按钮时触发

事件处理示例:

methods: {
  handleSizeChange(val) {
    this.pageSize = val;
    this.loadData();
  },
  handleCurrentChange(val) {
    this.currentPage = val;
    this.loadData();
  },
  loadData() {
    // 调用API获取数据
  }
}

小型分页

添加 small 属性可显示紧凑样式:

<el-pagination
  small
  :total="50">
</el-pagination>

背景色分页

设置 background 属性可添加背景色:

<el-pagination
  background
  :total="100">
</el-pagination>

禁用状态

通过 disabled 属性控制禁用状态:

<el-pagination
  disabled
  :total="100">
</el-pagination>

自定义页码按钮

使用 pager-count 属性设置最大页码按钮数(奇数,5-21之间):

<el-pagination
  :pager-count="7"
  :total="100">
</el-pagination>

国际化配置

通过设置 i18n 属性或全局配置实现多语言:

// 全局配置
Vue.prototype.$ELEMENT = { i18n: (key, value) => i18n.t(key, value) };

// 组件配置
<el-pagination
  :total="100"
  :current-page="1"
  :i18n="{ prevText: '前一页', nextText: '后一页' }">
</el-pagination>

与表格联动示例

典型的分页表格实现:

<template>
  <div>
    <el-table :data="tableData">
      <!-- 表格列定义 -->
    </el-table>
    <el-pagination
      @size-change="handleSizeChange"
      @current-change="handleCurrentChange"
      :current-page="currentPage"
      :page-sizes="[10, 20, 50]"
      :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
    };
  },
  created() {
    this.fetchData();
  },
  methods: {
    fetchData() {
      // 模拟API调用
      const start = (this.currentPage - 1) * this.pageSize;
      const end = start + this.pageSize;
      this.tableData = mockData.slice(start, end);
      this.total = mockData.length;
    },
    handleSizeChange(val) {
      this.pageSize = val;
      this.fetchData();
    },
    handleCurrentChange(val) {
      this.currentPage = val;
      this.fetchData();
    }
  }
};
</script>

elementui pagination

分享给朋友:

相关文章

elementui视频

elementui视频

以下是关于 ElementUI 视频资源的整理,涵盖教程、实战案例和官方资源: ElementUI 官方视频资源 ElementUI 官方文档虽以文字为主,但部分社区或第三方平台可能有官方团队发布的…

elementui按需

elementui按需

ElementUI 按需引入方法 ElementUI 支持按需引入组件,以减少最终打包体积。以下是具体实现方式: 安装 babel-plugin-component 需要安装官方推荐的 babel…

elementui不足

elementui不足

Element UI 的局限性 Element UI 作为一款基于 Vue.js 的组件库,在快速开发中后台系统时广受欢迎,但也存在一些不足之处: 组件功能较为基础 Element UI 提供的组件…

elementui rowspan

elementui rowspan

合并行(Rowspan)在 Element UI 表格中的实现 Element UI 的表格组件默认不直接支持 rowspan 属性,但可以通过自定义 span-method 方法实现合并行功能。以下…

elementui transfer

elementui transfer

ElementUI Transfer 组件使用指南 ElementUI 的 Transfer 组件用于在两栏之间转移数据,适用于权限分配、数据分类等场景。以下为详细使用方法: 基础用法 在模板中引入…

elementui滚动

elementui滚动

ElementUI 滚动相关功能 ElementUI 提供了多种滚动相关的组件和功能,适用于不同场景的需求。以下是一些常见的滚动实现方法和组件: 滚动条组件(ElScrollbar) Element…