当前位置:首页 > VUE

vue elementui实现分页

2026-02-11 05:14:14VUE

使用 Vue 和 Element UI 实现分页

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

安装 Element UI

确保项目中已安装 Element UI:

vue elementui实现分页

npm install element-ui -S

引入 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

vue elementui实现分页

<template>
  <div>
    <!-- 表格数据 -->
    <el-table :data="currentTableData" border>
      <el-table-column prop="date" label="日期"></el-table-column>
      <el-table-column prop="name" label="姓名"></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: [], // 全部数据
      currentTableData: [], // 当前页数据
      currentPage: 1, // 当前页码
      pageSize: 10, // 每页显示条数
      total: 0 // 总数据量
    }
  },
  created() {
    this.fetchData()
  },
  methods: {
    fetchData() {
      // 模拟从接口获取数据
      setTimeout(() => {
        this.tableData = [
          { date: '2023-01-01', name: '张三', address: '北京市' },
          { date: '2023-01-02', name: '李四', address: '上海市' },
          // 更多数据...
        ]
        this.total = this.tableData.length
        this.updateCurrentTableData()
      }, 500)
    },
    updateCurrentTableData() {
      // 根据当前页码和每页条数更新显示的数据
      const start = (this.currentPage - 1) * this.pageSize
      const end = start + this.pageSize
      this.currentTableData = this.tableData.slice(start, end)
    },
    handleSizeChange(val) {
      this.pageSize = val
      this.updateCurrentTableData()
    },
    handleCurrentChange(val) {
      this.currentPage = val
      this.updateCurrentTableData()
    }
  }
}
</script>

关键点说明

  • current-page 绑定当前页码
  • page-size 绑定每页显示条数
  • total 绑定总数据量
  • @size-change 监听每页条数变化
  • @current-change 监听页码变化
  • layout 定义分页器布局

后端分页实现

如果是后端分页,只需修改 fetchData 方法:

fetchData() {
  const params = {
    page: this.currentPage,
    size: this.pageSize
  }

  axios.get('/api/data', { params }).then(res => {
    this.currentTableData = res.data.list
    this.total = res.data.total
  })
}

样式调整

可以通过 CSS 调整分页组件样式:

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

以上实现提供了完整的前端分页功能,同时也说明了如何与后端接口配合实现真正的分页查询。

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

相关文章

vue实现自定义登录

vue实现自定义登录

实现自定义登录的基本步骤 在Vue中实现自定义登录功能通常需要结合前端和后端技术。以下是一个基本的实现流程: 创建登录表单组件 使用Vue的单文件组件创建一个登录表单,包含用户名和密码输入框以及提…

vue实现画圆弧并着色

vue实现画圆弧并着色

在 Vue 中实现画圆弧并着色 使用 Canvas API 绘制圆弧 在 Vue 组件的 mounted 钩子中,通过 Canvas API 绘制圆弧。创建一个 canvas 元素并获取其上下文:…

vue 实现pc

vue 实现pc

Vue 实现 PC 端应用的核心要点 Vue.js 是一个渐进式框架,适合构建 PC 端单页应用(SPA)或复杂的前端界面。以下是实现 PC 端应用的关键方法和注意事项: 项目初始化与工程化配置 使…

vue实现alert

vue实现alert

实现自定义 Alert 组件 在 Vue 中可以通过组件化方式实现自定义 Alert 弹窗。以下是基于 Vue 3 的实现示例: 组件代码 (Alert.vue) <template>…

vue实现图库

vue实现图库

Vue 实现图库的基本方法 使用 Vue 实现图库功能可以通过多种方式完成,以下是一些常见的方法和实现步骤。 使用 Vue 和第三方库(如 Vue Gallery) 安装 vue-gallery…

vue评分实现

vue评分实现

Vue 评分组件实现方法 使用第三方库(如 Element UI) 安装 Element UI: npm install element-ui 引入并注册组件: import Vue from…