当前位置:首页 > 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 实现适老化样式的关键方法 全局字体与字号调整 通过 CSS 变量或主题配置统一放大基础字号,建议正文不小于 18px,标题更大。在 App.vue 中设置全局样式: :root { --…

vue 实现闪烁

vue 实现闪烁

Vue 实现闪烁效果的方法 方法一:使用 CSS 动画 在 Vue 组件中定义一个闪烁的 CSS 动画,通过绑定 class 或 style 来控制元素的闪烁效果。 <template>…

vue实现类别

vue实现类别

Vue 实现类别的几种方法 在 Vue 中实现类别功能可以通过多种方式完成,以下是一些常见的方法: 使用 v-bind:class 动态绑定类名 通过对象语法或数组语法动态绑定类名,根据条件添加或移…

vue实现波形

vue实现波形

实现波形效果的方法 在Vue中实现波形效果可以通过多种方式完成,常见的方法包括使用Canvas绘制、CSS动画或第三方库。以下是几种实现方案: 使用Canvas绘制波形 通过Canvas API动态…

vue实现频道

vue实现频道

Vue实现频道功能的方法 使用Vue Router动态路由 通过Vue Router的动态路由功能可以轻松实现频道切换。在路由配置中定义动态参数,组件内通过this.$route.params获取当前…

vue 实现图片

vue 实现图片

Vue 实现图片加载与展示的方法 在 Vue 中实现图片加载和展示可以通过多种方式完成,以下是一些常见的方法: 使用 v-bind 绑定图片路径 通过 v-bind(或简写为 :)动态绑定图片的…