当前位置:首页 > VUE

原生vue实现表格分页

2026-02-24 07:35:55VUE

原生 Vue 实现表格分页的方法

数据准备与分页逻辑

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

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

分页控件实现

在模板中添加分页按钮和表格:

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

    <div class="pagination">
      <button 
        @click="currentPage--" 
        :disabled="currentPage === 1">
        上一页
      </button>
      <span>第 {{ currentPage }} 页</span>
      <button 
        @click="currentPage++" 
        :disabled="currentPage >= Math.ceil(total / pageSize)">
        下一页
      </button>
    </div>
  </div>
</template>

样式优化(可选)

添加基础样式改善视觉效果:

.pagination {
  margin-top: 20px;
  display: flex;
  gap: 10px;
  align-items: center;
}

button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

异步数据加载

如果数据需要从接口获取:

原生vue实现表格分页

methods: {
  async fetchData() {
    const res = await api.getData()
    this.tableData = res.data
    this.total = res.total
  }
},
mounted() {
  this.fetchData()
}

完整组件示例

export default {
  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)
    }
  },
  methods: {
    async fetchData() {
      const res = await api.getData()
      this.tableData = res.data
      this.total = res.total
    }
  },
  mounted() {
    this.fetchData()
  }
}

注意事项

  • 分页按钮的禁用状态需要根据当前页码动态计算
  • 对于大数据量建议使用服务端分页
  • 可以添加页码跳转功能增强用户体验

标签: 分页表格
分享给朋友:

相关文章

css制作三行三列表格

css制作三行三列表格

使用HTML和CSS创建三行三列表格 通过HTML的<table>标签结合CSS样式可以轻松实现三行三列的表格结构。 <table class="three-by-three"&g…

vue前端分页怎么实现

vue前端分页怎么实现

使用 Element UI 的分页组件 Element UI 提供了现成的分页组件 <el-pagination>,可以快速实现分页功能。需要安装 Element UI 并注册组件。 &…

vue实现表格复选

vue实现表格复选

实现表格复选的基本思路 在Vue中实现表格复选功能,通常需要结合v-model绑定选中状态,监听复选框变化事件,以及维护一个选中项的数组。以下是具体实现方法: 基础实现步骤 数据准备 定义表格数据和…

css怎么制作表格

css怎么制作表格

使用HTML和CSS制作表格 在HTML中,表格由<table>标签定义,结合CSS可以灵活控制样式。 基本HTML结构: <table> <tr>…

php分页功能的实现

php分页功能的实现

分页功能的基本原理 分页功能的核心是通过SQL的LIMIT子句实现数据分段查询。LIMIT接受两个参数:起始位置偏移量和每页记录数。例如查询第2页(每页10条)的SQL语句为: SELECT * F…

vue分页实现原理

vue分页实现原理

Vue 分页实现原理 Vue 分页的核心原理是通过计算当前页的数据范围,动态渲染数据列表并控制分页组件的交互。以下是关键实现步骤: 数据分片计算 分页需要根据当前页码和每页条数截取数据。假设原始数据…