当前位置:首页 > VUE

vue elemennt实现分页

2026-03-10 09:32:51VUE

Vue Element 实现分页

在 Vue 项目中结合 Element UI 实现分页功能,可以通过 el-pagination 组件快速完成。以下是具体实现方法:

安装 Element UI

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

npm install element-ui --save

引入 Element UI

main.js 中全局引入 Element UI:

vue elemennt实现分页

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-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>
  </div>
</template>

数据绑定与方法

在组件的 script 部分定义分页相关数据和方法:

vue elemennt实现分页

<script>
export default {
  data() {
    return {
      currentPage: 1,    // 当前页码
      pageSize: 10,      // 每页显示条数
      total: 100,       // 总数据量
    };
  },
  methods: {
    handleSizeChange(val) {
      this.pageSize = val;
      this.fetchData(); // 重新加载数据
    },
    handleCurrentChange(val) {
      this.currentPage = val;
      this.fetchData(); // 重新加载数据
    },
    fetchData() {
      // 模拟 API 请求,替换为实际接口调用
      console.log(`加载数据:页码=${this.currentPage}, 每页条数=${this.pageSize}`);
    },
  },
  created() {
    this.fetchData(); // 初始化加载数据
  },
};
</script>

结合表格实现完整分页

若需与表格结合,可配合 el-table 使用:

<template>
  <div>
    <el-table :data="tableData" border>
      <el-table-column prop="date" label="日期"></el-table-column>
      <el-table-column prop="name" label="姓名"></el-table-column>
    </el-table>
    <el-pagination
      @size-change="handleSizeChange"
      @current-change="handleCurrentChange"
      :current-page="currentPage"
      :page-sizes="[10, 20, 30]"
      :page-size="pageSize"
      layout="total, sizes, prev, pager, next"
      :total="total">
    </el-pagination>
  </div>
</template>

动态加载数据

实际项目中通常通过 API 动态获取数据:

methods: {
  async fetchData() {
    try {
      const res = await axios.get('/api/data', {
        params: {
          page: this.currentPage,
          size: this.pageSize,
        },
      });
      this.tableData = res.data.list;
      this.total = res.data.total;
    } catch (error) {
      console.error('数据加载失败', error);
    }
  },
}

自定义分页样式

通过 layout 属性自定义分页布局,例如仅显示页码和上下页按钮:

<el-pagination
  layout="prev, pager, next"
  :total="50">
</el-pagination>

注意事项

  • total 属性需设置为后端返回的总数据条数,而非总页数。
  • 分页事件(size-changecurrent-change)会触发数据重新加载,需避免重复请求。
  • 若数据为空,可通过 hide-on-single-page 属性隐藏分页组件。

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

相关文章

vue搜索实现

vue搜索实现

Vue 搜索功能实现方法 基于计算属性的搜索 在 Vue 中可以通过计算属性实现简单的搜索功能。这种方式适合小型数据集,利用 JavaScript 的 filter 方法进行筛选。 data() {…

vue mvvm 实现

vue mvvm 实现

Vue MVVM 实现原理 Vue.js 的 MVVM(Model-View-ViewModel)架构通过数据绑定和响应式系统实现视图与数据的自动同步。以下是其核心实现机制: 数据劫持与响应式系统…

vue 实现滑动

vue 实现滑动

Vue 实现滑动效果的方法 在Vue中实现滑动效果可以通过多种方式,以下是几种常见的方法: 使用CSS过渡和动画 通过Vue的<transition>组件结合CSS过渡或动画实现滑动效果…

vue实现拖拉

vue实现拖拉

实现拖拽功能的基本步骤 在Vue中实现拖拽功能可以通过原生HTML5的拖放API或第三方库如vuedraggable完成。以下是两种方法的详细说明。 使用HTML5原生拖放API HTML5提供了原…

vue框架实现

vue框架实现

Vue 框架实现方法 Vue 是一个渐进式 JavaScript 框架,适用于构建用户界面。以下是一些核心实现方法,涵盖基本使用、组件化、状态管理和优化技巧。 基本项目搭建 使用 Vue CLI…

vue实现vmodel

vue实现vmodel

Vue 实现 v-model Vue 的 v-model 是一个语法糖,用于在表单元素或组件上实现双向数据绑定。以下是其实现方式和原理的详细说明。 在表单元素上使用 v-model v-model…