当前位置:首页 > VUE

vue表格如何实现分页

2026-01-21 14:32:48VUE

Vue 表格分页实现方法

在 Vue 中实现表格分页通常需要结合前端分页逻辑和后端 API 支持。以下是两种常见实现方式:

前端分页实现(适合数据量较小的情况)

安装依赖(如使用 Element UI):

npm install element-ui

代码示例:

<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
      @current-change="handleCurrentChange"
      :current-page="currentPage"
      :page-size="pageSize"
      :total="total">
    </el-pagination>
  </div>
</template>

<script>
export default {
  data() {
    return {
      tableData: [], // 所有数据
      currentPage: 1,
      pageSize: 10,
      total: 0
    }
  },
  computed: {
    currentPageData() {
      const start = (this.currentPage - 1) * this.pageSize
      const end = start + this.pageSize
      return this.tableData.slice(start, end)
    }
  },
  methods: {
    handleCurrentChange(val) {
      this.currentPage = val
    }
  }
}
</script>

后端分页实现(推荐大数据量场景)

API 请求示例:

methods: {
  fetchData() {
    const params = {
      page: this.currentPage,
      size: this.pageSize
    }
    axios.get('/api/data', { params })
      .then(res => {
        this.tableData = res.data.list
        this.total = res.data.total
      })
  },
  handleCurrentChange(val) {
    this.currentPage = val
    this.fetchData()
  }
}

自定义分页组件实现

核心逻辑:

function paginate(array, pageSize, pageNumber) {
  return array.slice((pageNumber - 1) * pageSize, pageNumber * pageSize)
}

模板部分:

vue表格如何实现分页

<div v-for="item in paginatedData">{{ item.name }}</div>
<button @click="prevPage">上一页</button>
<span>第{{ currentPage }}页</span>
<button @click="nextPage">下一页</button>

关键注意事项

  • 大数据量(超过 1000 条)建议使用后端分页
  • 分页组件应显示总页数和当前页码
  • 添加 loading 状态提升用户体验
  • 考虑添加每页显示条数选择器

以上方法可根据具体项目需求选择使用,Element UI 和 Ant Design Vue 等组件库已提供成熟的分页组件,可直接集成使用。

分享给朋友:

相关文章

vue router实现分页

vue router实现分页

使用 Vue Router 实现分页 在 Vue.js 项目中,可以通过 Vue Router 结合分页组件实现分页功能。以下是实现分页的几种方法: 使用路由参数传递页码 在路由配置中定义一个动态参…

vue实现分页条数

vue实现分页条数

Vue 实现分页条数控制 在 Vue 中实现分页条数控制通常需要结合分页组件和后端 API 支持。以下是几种常见的实现方式: 使用 Element UI 的分页组件 Element UI 提供了强大…

React如何实现通知

React如何实现通知

React 实现通知的方法 使用状态管理 在 React 组件中通过 useState 或 useReducer 管理通知状态,触发状态更新时显示通知。适合简单场景,无需额外依赖。 import {…

react如何实现keepalive

react如何实现keepalive

React 实现 KeepAlive 的方法 React 本身没有内置的 KeepAlive 组件,但可以通过以下方式模拟类似功能,实现组件状态保持或避免重复渲染。 使用 CSS 隐藏组件 通过 C…

vue完整实现分页

vue完整实现分页

Vue 分页组件实现 分页组件模板 分页组件通常包含页码按钮、上一页/下一页按钮和跳转功能。以下是一个基础模板结构: <template> <div class="pagina…

vue如何实现echarts

vue如何实现echarts

Vue 中集成 ECharts 的方法 安装 ECharts 依赖包 通过 npm 或 yarn 安装核心库: npm install echarts --save # 或 yarn add e…