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

<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>

结合表格使用

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

<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 elementui 分页的实现

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

相关文章

vue实现网页切换

vue实现网页切换

Vue 实现网页切换的方法 在 Vue 中实现网页切换通常可以通过以下几种方式完成,具体取决于项目需求和路由管理方式。 使用 Vue Router Vue Router 是 Vue.js 官方提供…

vue实现右下角弹框

vue实现右下角弹框

实现右下角弹框的基本思路 在Vue中实现右下角弹框,通常需要结合CSS定位和Vue的组件化特性。弹框可以通过绝对定位固定在右下角,并通过Vue控制其显示与隐藏。 创建弹框组件 新建一个Vue组件(如…

vue   实现单选

vue 实现单选

Vue 实现单选功能 在 Vue 中实现单选功能可以通过多种方式,以下是几种常见的方法: 使用原生 <input type="radio"> 绑定 v-model 通过 v-model…

vue优秀实现

vue优秀实现

Vue.js 优秀实现方法 响应式数据管理 使用 Vue 的 ref 和 reactive 处理基础类型和对象类型数据,结合 computed 计算属性优化渲染性能。对于复杂状态,推荐 Pinia 替…

vue实现摘要

vue实现摘要

Vue 实现摘要的方法 在 Vue 中实现文本摘要功能通常涉及截取文本的前部分内容并添加省略号。可以通过计算属性、过滤器或自定义指令来实现。 计算属性实现 在 Vue 组件中定义一个计算属性,用于截…

vue 实现tabs

vue 实现tabs

Vue 实现 Tabs 组件的方法 使用动态组件和 v-for 在 Vue 中实现 Tabs 可以通过动态组件和 v-for 指令结合完成。定义一个 tabs 数组,包含每个标签的标题和对应的组件。…