当前位置:首页 > VUE

vue 实现翻页表

2026-03-08 22:27:54VUE

基础翻页表格实现

使用el-tableel-pagination组件实现翻页表格功能。需要在Vue项目中安装Element UI库。

<template>
  <div>
    <el-table :data="tableData" border style="width: 100%">
      <el-table-column prop="date" label="日期" width="180"></el-table-column>
      <el-table-column prop="name" label="姓名" width="180"></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: [],
      currentPage: 1,
      pageSize: 10,
      total: 0
    }
  },
  methods: {
    handleSizeChange(val) {
      this.pageSize = val
      this.fetchData()
    },
    handleCurrentChange(val) {
      this.currentPage = val
      this.fetchData()
    },
    fetchData() {
      // 模拟API请求
      const mockData = []
      const start = (this.currentPage - 1) * this.pageSize

      for(let i = 0; i < this.pageSize; i++) {
        mockData.push({
          date: `2023-01-${start + i + 1}`,
          name: `用户${start + i}`,
          address: `地址${start + i}`
        })
      }

      this.tableData = mockData
      this.total = 100 // 模拟总数据量
    }
  },
  created() {
    this.fetchData()
  }
}
</script>

后端分页集成

实际项目中通常需要从后端API获取分页数据。以下是与后端API集成的示例:

vue 实现翻页表

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

      const response = await axios.get('/api/data', { params })
      this.tableData = response.data.items
      this.total = response.data.total
    } catch (error) {
      console.error('获取数据失败:', error)
    }
  }
}

自定义分页样式

可以通过CSS自定义分页组件的样式:

<style scoped>
.el-pagination {
  margin-top: 20px;
  text-align: right;
}

.el-pagination.is-background .btn-next,
.el-pagination.is-background .btn-prev,
.el-pagination.is-background .el-pager li {
  background-color: #f4f4f5;
  color: #606266;
}

.el-pagination.is-background .el-pager li:not(.disabled).active {
  background-color: #409EFF;
  color: #FFF;
}
</style>

性能优化技巧

对于大数据量的表格,可以使用虚拟滚动提高性能。Element Plus提供了虚拟滚动表格组件:

vue 实现翻页表

<el-table-v2
  :columns="columns"
  :data="tableData"
  :width="700"
  :height="400"
  :row-height="50"
  fixed
/>

高级功能实现

添加表格排序和筛选功能:

<el-table-column
  prop="date"
  label="日期"
  width="180"
  sortable
  :filters="[
    { text: '2023-01-01', value: '2023-01-01' },
    { text: '2023-01-02', value: '2023-01-02' }
  ]"
  :filter-method="filterHandler">
</el-table-column>

对应的处理方法:

methods: {
  filterHandler(value, row, column) {
    return row.date === value
  }
}

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

相关文章

vue实现添加用户

vue实现添加用户

Vue 实现添加用户功能 数据绑定与表单设计 在 Vue 中实现添加用户功能,首先需要设计一个表单,用于收集用户输入的数据。通过 v-model 实现双向数据绑定,确保表单数据与 Vue 实例中的数据…

vue 实现复选

vue 实现复选

Vue 实现复选功能 在 Vue 中实现复选功能可以通过多种方式完成,以下是常见的几种方法: 使用 v-model 绑定数组 通过 v-model 绑定一个数组,可以自动收集用户选择的复选框值。…

vue 实现打印

vue 实现打印

Vue 实现打印功能的方法 在Vue项目中实现打印功能,可以通过以下几种方式实现: 使用window.print()方法 通过调用浏览器的原生打印API实现基础打印功能,适用于简单内容打印。 //…

vue observer实现

vue observer实现

Vue Observer 实现原理 Vue 的响应式系统核心是通过 Object.defineProperty(Vue 2)或 Proxy(Vue 3)实现的 Observer 模式。以下是关键实现细…

vue实现注销

vue实现注销

实现用户注销功能 在Vue应用中实现用户注销功能通常涉及清除用户会话、重置应用状态并跳转到登录页面。以下是具体实现方法: 清除用户认证信息 使用Vuex或Pinia管理用户状态时,需在注销时重置存储…

vue实现增加

vue实现增加

实现 Vue 中的新增功能 在 Vue 中实现新增功能通常涉及数据绑定、表单处理和状态管理。以下是几种常见的实现方式: 数据绑定与列表渲染 通过 v-model 绑定表单输入,使用数组的 push…