当前位置:首页 > VUE

vue elemennt实现分页

2026-01-18 03:47:37VUE

Vue Element UI 分页实现

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

安装 Element UI

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

npm install element-ui

引入 Element UI

main.js 或入口文件中全局引入:

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="currentPageData" border>
      <el-table-column prop="name" label="姓名"></el-table-column>
      <el-table-column prop="age" 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="totalData.length">
    </el-pagination>
  </div>
</template>

分页逻辑实现

在 Vue 组件的脚本中处理分页逻辑:

<script>
export default {
  data() {
    return {
      totalData: [], // 所有数据
      currentPageData: [], // 当前页数据
      currentPage: 1, // 当前页码
      pageSize: 10, // 每页条数
    };
  },
  created() {
    // 模拟数据加载
    this.loadData();
  },
  methods: {
    loadData() {
      // 模拟从后端获取数据
      this.totalData = Array.from({ length: 100 }, (_, i) => ({
        name: `用户${i + 1}`,
        age: Math.floor(Math.random() * 30) + 20,
      }));
      this.updatePageData();
    },
    updatePageData() {
      // 根据当前页码和每页条数截取数据
      const start = (this.currentPage - 1) * this.pageSize;
      const end = start + this.pageSize;
      this.currentPageData = this.totalData.slice(start, end);
    },
    handleSizeChange(val) {
      // 每页条数变化
      this.pageSize = val;
      this.updatePageData();
    },
    handleCurrentChange(val) {
      // 当前页码变化
      this.currentPage = val;
      this.updatePageData();
    },
  },
};
</script>

后端分页对接

若需与后端 API 交互,通常传递 currentPagepageSize 参数:

methods: {
  async fetchData() {
    const res = await axios.get('/api/data', {
      params: {
        page: this.currentPage,
        size: this.pageSize,
      },
    });
    this.totalData = res.data.total;
    this.currentPageData = res.data.list;
  },
}

关键属性说明

  • current-page:绑定当前页码。
  • page-sizes:可选每页条数配置。
  • page-size:绑定每页显示条数。
  • layout:控制分页组件的布局元素。
  • total:绑定总数据量。

通过以上步骤即可实现完整的分页功能,支持前端分页或与后端交互的分页模式。

vue elemennt实现分页

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

相关文章

vue实现购物按钮

vue实现购物按钮

Vue 购物按钮实现方法 基础按钮实现 使用 Vue 的模板语法创建基础按钮组件,绑定点击事件处理购物逻辑: <template> <button @click="addTo…

vue表单实现搜索

vue表单实现搜索

实现Vue表单搜索功能 在Vue中实现表单搜索功能通常涉及表单绑定、事件处理和搜索逻辑。以下是具体实现方法: 数据绑定与表单结构 使用v-model实现表单与Vue数据的双向绑定: <tem…

vue页面分离的实现

vue页面分离的实现

Vue页面分离的实现方法 将Vue页面分离为多个组件或模块,有助于提升代码可维护性和复用性。以下是几种常见的实现方式: 组件化拆分 通过将页面拆分为多个子组件,每个组件负责特定功能或UI部分。使用…

vue怎么实现选中删除

vue怎么实现选中删除

实现选中删除功能的方法 在Vue中实现选中删除功能通常涉及以下几个关键步骤: 数据绑定与选中状态管理 使用v-model或v-for指令绑定列表数据,结合复选框或单选按钮实现选中状态管理。例如:…

vue实现查询替换

vue实现查询替换

Vue 实现查询替换功能 在 Vue 中实现查询替换功能,可以通过数据绑定和字符串操作方法结合实现。以下是具体实现方式: 基础实现 <template> <div>…

vue实现store

vue实现store

Vue 实现 Store 在 Vue 中,可以通过 Vuex 或 Pinia 实现全局状态管理(Store)。以下是两种主流方案的实现方法。 使用 Vuex 实现 Store Vuex 是 Vu…