当前位置:首页 > VUE

vue elementui实现分页

2026-03-28 15:28:02VUE

使用 Element UI 实现 Vue 分页功能

Element UI 提供了 el-pagination 组件,可以轻松实现分页功能。以下是一个完整的实现示例:

<template>
  <div>
    <el-table :data="tableData" style="width: 100%">
      <el-table-column prop="date" label="日期" width="180"></el-table-column>
      <el-table-column prop="name" label="姓名" width="180"></el-table-column>
      <el-table-column prop="address" 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="total">
    </el-pagination>
  </div>
</template>

<script>
export default {
  data() {
    return {
      tableData: [],
      currentPage: 1,
      pageSize: 10,
      total: 0
    }
  },
  created() {
    this.fetchData()
  },
  methods: {
    fetchData() {
      // 模拟API请求
      const mockData = []
      for (let i = 0; i < 100; i++) {
        mockData.push({
          date: `2023-01-${i + 1}`,
          name: `用户${i + 1}`,
          address: `地址${i + 1}`
        })
      }

      // 分页处理
      const start = (this.currentPage - 1) * this.pageSize
      const end = start + this.pageSize
      this.tableData = mockData.slice(start, end)
      this.total = mockData.length
    },
    handleSizeChange(val) {
      this.pageSize = val
      this.fetchData()
    },
    handleCurrentChange(val) {
      this.currentPage = val
      this.fetchData()
    }
  }
}
</script>

关键配置项说明

el-pagination 组件的主要属性:

  • current-page: 当前页码
  • page-size: 每页显示条目数
  • total: 总条目数
  • page-sizes: 每页显示个数选择器的选项设置
  • layout: 组件布局,可以设置分页器的显示内容

与后端API配合

实际项目中,分页通常需要与后端API配合:

async fetchData() {
  try {
    const response = await axios.get('/api/data', {
      params: {
        page: this.currentPage,
        pageSize: this.pageSize
      }
    })
    this.tableData = response.data.list
    this.total = response.data.total
  } catch (error) {
    console.error(error)
  }
}

自定义样式

可以通过CSS自定义分页样式:

.el-pagination {
  margin-top: 20px;
  text-align: center;
}

.el-pagination.is-background .btn-next,
.el-pagination.is-background .btn-prev,
.el-pagination.is-background .el-pager li {
  background-color: #f4f4f5;
  color: #606266;
}

注意事项

确保在Vue项目中已正确安装Element UI:

npm install element-ui

并在main.js中引入:

vue elementui实现分页

import Vue from 'vue'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'

Vue.use(ElementUI)

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

相关文章

vue实现删除

vue实现删除

Vue 实现删除功能的方法 在 Vue 中实现删除功能通常涉及以下几个步骤: 数据绑定与列表渲染 使用 v-for 指令渲染列表数据,并为每个项绑定唯一标识符(如 id)。例如: <ul&g…

vue实现mouseout

vue实现mouseout

Vue 实现 mouseout 事件的方法 在 Vue 中实现 mouseout 事件可以通过多种方式完成,以下是几种常见的方法: 使用 v-on 指令 Vue 提供了 v-on 指令(或简写为 @…

vue 实现全屏

vue 实现全屏

Vue 实现全屏功能 在 Vue 中实现全屏功能可以通过浏览器提供的 Fullscreen API 完成。以下是一个完整的实现方案: 安装依赖(可选) 如果需要跨浏览器兼容性更好,可以安装 scre…

vue实现settimeout

vue实现settimeout

在 Vue 中实现 setTimeout Vue 中可以通过 JavaScript 原生的 setTimeout 方法实现延时操作,但需要注意结合 Vue 的响应式特性和生命周期管理。以下是几种常见实…

vue实现登录认证

vue实现登录认证

Vue 登录认证实现方法 使用 Vue Router 和 Vuex 管理登录状态 在 Vue 项目中,通常使用 Vue Router 进行路由管理,Vuex 进行状态管理。登录认证的核心是验证用户身份…

vue实现搜索过滤

vue实现搜索过滤

Vue 实现搜索过滤 使用计算属性实现搜索过滤 在 Vue 中,计算属性(computed)是实现搜索过滤的常见方法。通过计算属性动态过滤数据,无需修改原始数据。 <template>…