当前位置:首页 > VUE

vue iview实现分页

2026-02-19 08:39:51VUE

实现分页功能

在Vue项目中使用iView组件库实现分页功能,需要结合Page分页组件和数据绑定。以下是一个完整的实现示例:

<template>
  <div>
    <Table :columns="columns" :data="tableData"></Table>
    <Page 
      :total="total" 
      :current="currentPage" 
      :page-size="pageSize" 
      @on-change="handlePageChange"
      show-total
      show-elevator
    />
  </div>
</template>

<script>
export default {
  data() {
    return {
      columns: [
        { title: '姓名', key: 'name' },
        { title: '年龄', key: 'age' },
        { title: '地址', key: 'address' }
      ],
      tableData: [],
      total: 0,
      currentPage: 1,
      pageSize: 10
    }
  },
  methods: {
    fetchData(page = 1) {
      // 模拟API请求
      const mockData = this.getMockData(page)
      this.tableData = mockData.list
      this.total = mockData.total
    },
    handlePageChange(page) {
      this.currentPage = page
      this.fetchData(page)
    },
    getMockData(page) {
      // 生成模拟数据
      const list = []
      const start = (page - 1) * this.pageSize
      for (let i = 0; i < this.pageSize; i++) {
        list.push({
          name: `用户${start + i}`,
          age: 20 + (start + i),
          address: `北京市海淀区${start + i}号`
        })
      }
      return {
        list,
        total: 100 // 模拟总数据量
      }
    }
  },
  created() {
    this.fetchData()
  }
}
</script>

核心配置说明

Page组件的主要属性配置:

vue iview实现分页

  • total: 总数据量,必填项
  • current: 当前页码,使用.sync修饰符或手动更新
  • page-size: 每页显示条数,默认10
  • show-total: 显示总条数
  • show-elevator: 显示页码跳转输入框

事件处理:

vue iview实现分页

  • @on-change: 页码改变时的回调,参数为新页码
  • @on-page-size-change: 每页条数改变时的回调

与后端API配合

实际项目中通常需要与后端API配合:

async fetchData(page = 1) {
  const res = await api.getList({
    page,
    pageSize: this.pageSize
  })
  this.tableData = res.data.list
  this.total = res.data.total
}

样式自定义

可以通过覆盖CSS类名自定义样式:

.ivu-page-item-active {
  background-color: #2d8cf0;
  border-color: #2d8cf0;
}

注意事项

  1. 确保total值正确反映后端返回的总数据量
  2. 分页改变时需要同步更新currentPage和重新获取数据
  3. 大型项目建议将分页逻辑封装为mixin或独立组件
  4. 移动端可考虑使用simple模式简化分页器

以上实现方式适用于大多数Vue+iView的分页场景,可根据实际需求调整分页样式和交互逻辑。

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

相关文章

vue如何实现到期提醒

vue如何实现到期提醒

实现 Vue 到期提醒功能 使用计算属性计算剩余时间 在 Vue 组件中定义一个计算属性,计算目标日期与当前日期的差值。通过 Date 对象获取时间戳并计算剩余天数或小时数。 computed: {…

vue实现安全免登录

vue实现安全免登录

Vue 实现安全免登录的方案 免登录功能通常通过持久化认证状态(如 Token)实现,但需兼顾安全性。以下是基于 Vue 的常见实现方案: 基于 Token 的免登录 登录成功后存储 Token…

django vue实现

django vue实现

Django与Vue.js整合实现方案 Django作为后端框架与Vue.js作为前端框架的整合,可以通过以下方式实现: 分离式开发 前后端完全分离,Django仅提供API接口,Vue.js通过a…

vue的实现

vue的实现

Vue 的实现原理 Vue 是一个渐进式 JavaScript 框架,其核心实现主要包括响应式系统、虚拟 DOM、模板编译和组件化机制。以下是 Vue 实现的主要技术细节。 响应式系统 Vue 的…

vue实现答辩

vue实现答辩

Vue 实现答辩系统的关键步骤 项目初始化与配置 使用 Vue CLI 或 Vite 创建项目,安装 Vue Router 管理路由,Pinia/Vuex 进行状态管理。配置 ESLint 和 Pre…

vue实现白板

vue实现白板

Vue实现白板功能 使用Vue实现白板功能可以通过HTML5的Canvas API结合Vue的响应式特性来完成。以下是实现白板功能的关键步骤: 安装依赖 在Vue项目中安装必要的依赖,如vue-dr…