当前位置:首页 > VUE

vue实现表格分页组件

2026-02-23 07:08:49VUE

Vue 表格分页组件实现

数据准备与分页逻辑

在Vue组件中定义表格数据和分页相关变量:

data() {
  return {
    tableData: [], // 表格数据
    currentPage: 1, // 当前页码
    pageSize: 10,   // 每页条数
    total: 0       // 总数据量
  }
}

计算属性实现分页数据切片:

computed: {
  paginatedData() {
    const start = (this.currentPage - 1) * this.pageSize
    const end = start + this.pageSize
    return this.tableData.slice(start, end)
  }
}

模板结构

使用element-ui或自定义模板结构:

vue实现表格分页组件

<template>
  <div>
    <table>
      <tr v-for="(item, index) in paginatedData" :key="index">
        <!-- 表格内容渲染 -->
      </tr>
    </table>

    <!-- 分页控件 -->
    <div class="pagination">
      <button @click="prevPage" :disabled="currentPage === 1">上一页</button>
      <span>第{{ currentPage }}页</span>
      <button @click="nextPage" :disabled="currentPage >= pageCount">下一页</button>
      <select v-model="pageSize" @change="handleSizeChange">
        <option value="5">5条/页</option>
        <option value="10">10条/页</option>
        <option value="20">20条/页</option>
      </select>
    </div>
  </div>
</template>

方法实现

添加分页控制方法:

methods: {
  prevPage() {
    if (this.currentPage > 1) {
      this.currentPage--
    }
  },

  nextPage() {
    if (this.currentPage < this.pageCount) {
      this.currentPage++
    }
  },

  handleSizeChange() {
    this.currentPage = 1 // 重置页码
  },

  // 计算总页数
  get pageCount() {
    return Math.ceil(this.total / this.pageSize)
  }
}

使用Element UI组件

若使用Element UI可简化实现:

vue实现表格分页组件

<el-pagination
  @size-change="handleSizeChange"
  @current-change="handleCurrentChange"
  :current-page="currentPage"
  :page-sizes="[5, 10, 20]"
  :page-size="pageSize"
  layout="total, sizes, prev, pager, next"
  :total="total">
</el-pagination>

对应方法:

handleSizeChange(val) {
  this.pageSize = val
},
handleCurrentChange(val) {
  this.currentPage = val
}

样式优化

添加基础分页样式:

.pagination {
  margin-top: 20px;
  display: flex;
  align-items: center;
  gap: 10px;
}
button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

注意事项

  • 异步数据加载需在获取数据后更新total值
  • 大型数据集建议使用服务器端分页
  • 可添加页码跳转功能增强用户体验
  • 移动端需调整分页控件布局

标签: 分页组件
分享给朋友:

相关文章

vue router实现分页

vue router实现分页

Vue Router 实现分页的方法 在 Vue.js 中,可以通过 Vue Router 实现分页功能,通常需要结合路由参数和动态路由匹配。以下是几种常见的实现方式: 使用查询参数实现分页 在路由…

vue哪个组件实现动画

vue哪个组件实现动画

在Vue中实现动画效果,可以通过以下组件和方法实现: Vue内置动画组件 Vue提供了<transition>和<transition-group>两个内置组件,用于处理进入…

elementui组件

elementui组件

ElementUI 组件概述 ElementUI 是一套基于 Vue.js 的桌面端组件库,提供丰富的 UI 组件,适用于快速开发中后台系统。以下是其核心组件分类及典型用法。 基础组件 Button…

vue VUE实现日历组件功能

vue VUE实现日历组件功能

Vue 日历组件实现方法 基础日历结构 使用Vue的模板语法构建日历的HTML结构,通常包含头部(年月显示、切换按钮)和日历表格(星期标题和日期格子)。 <template> <…

vue实现页面分页

vue实现页面分页

Vue实现页面分页的方法 使用Element UI的分页组件 Element UI提供了现成的分页组件el-pagination,适合快速集成。以下是一个示例代码: <template>…

分页用vue实现

分页用vue实现

实现分页的基本思路 在Vue中实现分页功能,通常需要以下几个核心部分:数据列表、当前页码、每页显示数量、总页数计算、页码切换逻辑。以下是一个完整的实现方案。 分页组件代码示例 <templat…