当前位置:首页 > 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或自定义模板结构:

<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可简化实现:

<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
}

样式优化

添加基础分页样式:

vue实现表格分页组件

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

注意事项

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

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

相关文章

vue实现分页功能

vue实现分页功能

Vue 分页功能实现 在 Vue 中实现分页功能通常需要结合后端 API 或前端数据分页逻辑。以下是两种常见的实现方式: 前端分页实现 适用于数据量较小的情况,直接在 Vue 组件中处理分页逻辑。…

vue VUE实现日历组件功能

vue VUE实现日历组件功能

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

vue加载实现分页

vue加载实现分页

Vue 实现分页加载的方法 使用 Element UI 的分页组件 安装 Element UI 后,可以直接使用其分页组件。在模板中添加分页组件,并绑定相关事件和数据。 <template&g…

vue实现秒表组件

vue实现秒表组件

实现秒表组件的基本思路 使用Vue实现秒表组件需要管理时间状态、控制计时器的启动/暂停/重置功能,并通过计算属性动态显示格式化时间。核心逻辑包括利用setInterval更新计时数据,并通过生命周期钩…

vue实现盖章组件

vue实现盖章组件

实现Vue盖章组件的步骤 组件结构设计 创建一个Vue组件,包含画布元素和必要的控制按钮。画布用于显示盖章效果,按钮用于触发盖章操作。组件需要接收图片和盖章位置等参数。 <template&g…

vue分页插件实现

vue分页插件实现

Vue 分页插件实现方法 使用现成组件库(推荐) Element UI、Ant Design Vue 等主流库已提供成熟分页组件,可直接集成: <template> <…