当前位置:首页 > 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实现下拉菜单可以通过动态绑定v-show或v-if控制菜单显示隐藏,结合事件监听(如@click或@mouseenter)触发状态切换。以下是两种常见实现方式: 方…

vue实现一个tab栏

vue实现一个tab栏

Vue 实现 Tab 栏 基础实现(选项式 API) <template> <div class="tab-container"> <div class="t…

jq 实现 vue

jq 实现 vue

jq 实现 Vue 的核心功能 jq 是一个轻量级的 JavaScript 库,主要用于 DOM 操作和事件处理。虽然它不能完全替代 Vue,但可以通过一些技巧模拟 Vue 的核心功能,如数据绑定、事…

vue 实现注册

vue 实现注册

Vue 实现注册功能 注册功能通常包括表单验证、数据提交和用户反馈。以下是实现注册功能的步骤: 1. 创建注册表单组件 在 Vue 项目中创建一个注册表单组件,包含用户名、邮箱、密码等输入字段。…

vue实现表单

vue实现表单

Vue 表单实现方法 双向数据绑定 使用 v-model 指令实现表单元素与数据的双向绑定。适用于 input、textarea、select 等元素。 <template> <…

vue实现微云

vue实现微云

Vue 实现微云功能 使用 Vue 实现类似微云的网盘功能需要结合前端框架、后端存储及文件处理技术。以下是关键实现步骤和代码示例: 前端框架搭建 使用 Vue CLI 创建项目基础结构,安装必要依赖…