当前位置:首页 > VUE

vue的element实现分页

2026-02-25 01:34:45VUE

使用 Element UI 实现分页

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

安装 Element UI

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

vue的element实现分页

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 实现分页功能:

vue的element实现分页

<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 组件支持以下常用属性:

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

事件说明

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

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

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

相关文章

vue 实现多选

vue 实现多选

Vue 实现多选的方法 在 Vue 中实现多选功能可以通过多种方式完成,以下是几种常见的实现方法: 使用 v-model 绑定数组 Vue 的 v-model 指令可以与复选框结合使用,绑定到一个数…

vue实现点击旋转轮盘

vue实现点击旋转轮盘

实现点击旋转轮盘效果 在Vue中实现点击旋转轮盘效果,可以通过CSS动画和Vue的数据绑定结合完成。以下是一个完整的实现方案: 准备工作 需要安装Vue.js环境,可以通过CDN引入或使用Vue…

vue实现选中单元格

vue实现选中单元格

Vue 实现选中单元格的方法 基础实现思路 在 Vue 中实现选中单元格功能,通常可以通过动态绑定 class 或 style 来实现。以下是一个基于表格的简单实现示例: <template…

vue实现贴图

vue实现贴图

Vue 实现贴图功能 在Vue中实现贴图功能通常涉及将图片动态添加到指定位置或元素上。以下是几种常见实现方式: 使用v-bind动态绑定图片 通过数据驱动的方式动态更换图片源: <templ…

vue 实现挂载

vue 实现挂载

Vue 实现挂载的基本方法 在 Vue 中,挂载是将 Vue 实例与 DOM 元素关联的过程。通过挂载,Vue 可以管理 DOM 并实现数据绑定和响应式更新。 创建 Vue 实例并挂载 con…

vue实现滑块

vue实现滑块

Vue 实现滑块组件的方法 使用原生 HTML 和 Vue 指令 通过 Vue 的 v-model 和事件监听实现基础滑块功能。创建一个包含 input 元素的组件,类型设置为 range,并绑定到…