当前位置:首页 > VUE

vue的element实现分页

2026-02-25 01:34:45VUE

使用 Element UI 实现分页

Element UI 提供了 el-pagination 组件,可以方便地实现分页功能。以下是一个完整的分页实现示例,包括前端和后端交互。

安装 Element UI

确保项目中已安装 Element UI。如果未安装,可以通过以下命令安装:

npm install element-ui

引入 Element UI

main.js 中全局引入 Element UI:

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="tableData" border style="width: 100%">
      <el-table-column prop="id" label="ID" width="180"></el-table-column>
      <el-table-column prop="name" label="Name" width="180"></el-table-column>
      <el-table-column prop="address" label="Address"></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="total">
    </el-pagination>
  </div>
</template>

<script>
export default {
  data() {
    return {
      tableData: [],
      currentPage: 1,
      pageSize: 10,
      total: 0
    };
  },
  created() {
    this.fetchData();
  },
  methods: {
    fetchData() {
      // 模拟 API 请求
      const params = {
        page: this.currentPage,
        size: this.pageSize
      };
      // 实际项目中替换为真实的 API 调用
      this.$axios.get('/api/data', { params }).then(response => {
        this.tableData = response.data.list;
        this.total = response.data.total;
      });
    },
    handleSizeChange(val) {
      this.pageSize = val;
      this.fetchData();
    },
    handleCurrentChange(val) {
      this.currentPage = val;
      this.fetchData();
    }
  }
};
</script>

后端 API 实现

后端需要根据前端传递的 pagesize 参数返回分页数据。以下是一个简单的 Node.js Express 示例:

const express = require('express');
const app = express();

app.get('/api/data', (req, res) => {
  const { page = 1, size = 10 } = req.query;
  const offset = (page - 1) * size;

  // 模拟数据库查询
  const total = 100; // 总数据量
  const list = Array.from({ length: size }, (_, i) => ({
    id: offset + i + 1,
    name: `Item ${offset + i + 1}`,
    address: `Address ${offset + i + 1}`
  }));

  res.json({
    list,
    total
  });
});

app.listen(3000, () => console.log('Server running on port 3000'));

分页属性说明

el-pagination 组件支持以下常用属性:

vue的element实现分页

  • current-page:当前页码,支持 .sync 修饰符。
  • page-size:每页显示条目数。
  • total:总条目数。
  • page-sizes:每页显示个数选择器的选项设置。
  • layout:组件布局,子组件名用逗号分隔。

事件说明

  • size-change:每页条数改变时触发。
  • current-change:当前页改变时触发。

通过以上步骤,可以快速在 Vue 项目中实现分页功能。

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

相关文章

实现vue

实现vue

安装Vue.js 通过npm安装Vue.js是最常见的方式。确保已安装Node.js和npm,运行以下命令: npm install vue 或者使用CDN直接引入: <script src…

vue 实现菜单

vue 实现菜单

Vue 实现菜单的方法 使用 Vue 实现菜单可以通过多种方式,以下是几种常见的方法: 使用 Vue Router 实现动态路由菜单 通过 Vue Router 可以动态生成菜单,根据路由配置自动渲…

vue实现座位

vue实现座位

Vue实现座位布局 使用Vue实现座位布局可以通过组件化和响应式数据管理来简化开发流程。以下是一个完整的实现方案: 数据准备 定义座位数据结构,通常使用二维数组表示行列关系: data() {…

vue 水印 实现

vue 水印 实现

Vue 水印实现方法 使用 canvas 动态生成水印 在 Vue 组件中通过 canvas 绘制水印,并将其作为背景图片插入到目标元素中。这种方法灵活性高,支持动态调整水印内容、角度和透明度。 &…

vue实现easyui缩放

vue实现easyui缩放

实现 Vue 与 EasyUI 结合的缩放功能 在 Vue 项目中集成 EasyUI 并实现缩放功能,需要结合 EasyUI 的布局组件和 Vue 的数据绑定特性。以下是一个完整的实现方案: 安装…

vue登陆实现

vue登陆实现

Vue 登录实现方法 前端部分实现 创建登录表单组件,使用v-model绑定用户名和密码数据 <template> <form @submit.prevent="handleL…