Pagination 分页
代码演示
- 1
 - 2
 - 3
 - 4
 - 5
 
基础用法
分页组件的最基础的用法。
查看代码 < />
<template>
  <w-pagination :total="50"></w-pagination>
</template>- 1
 - 2
 - 3
 - 4
 - 5
 - 6
 - 7
 - 8
 - 9
 
小型分页
分页组件默认风格是带背景色的样式, 为组件添加 plain 属性即可使用不带背景色的分页组件. 为组件添加 small属性即可使用小型分页组件, 小型分页不会被折叠页码。
查看代码 < />
<template>
  <w-pagination :total="50" :page-size="6" plain small></w-pagination>
</template>- 1
 - 2
 - 3
 - 4
 - 5
 - 6
 - 7
 - 8
 - 25
 
显示更多页码
默认最多显示页码为 max-pager = 8, 大于最大显示页码时会将多余的页码折叠。
查看代码 < />
<template>
  <w-pagination :total="50" :page-size="2"></w-pagination>
</template>共 50 条   
 - 1
 - 2
 - 3
 - 4
 - 5
 
共 50 条   
 - 1
 - 2
 - 3
 - 4
 - 5
 
共 50 条   
 - 1
 - 2
 - 3
 - 4
 - 5
 - 6
 - 7
 - 8
 - 13
 
共 50 条               
- 1
 - 2
 - 3
 - 4
 - 5
 - 6
 - 7
 - 8
 - 13
 
附加功能
更多附加功能展示。
查看代码 < />
<template>
  <w-pagination :current-pager="2"
    :total="50" :show="['prev', 'next', 'total']"
    @actived-change="handleActivedChange"></w-pagination>
  <w-pagination :total="50" :show="['prev', 'next', 'total', 'jump']">
  </w-pagination>
  <w-pagination :total="50" :page-size="4"
    :show="['prev', 'next', 'total', 'jump']">
  </w-pagination>
  <w-pagination :total="50" :page-size="4"
    @page-size-change="handlePageSizeChange"
    :page-sizes="[4, 8, 12, 16]" :show="['prev', 'next', 'total', 'jump']">
  </w-pagination>
</template>
<script>
  export default {
    methods: {
      handlePageSizeChange(val) {
        console.log(val, '条/页');
      },
      handleActivedChange(val) {
        console.log('当前第:', val, '页');
      },
    },
  }
</script>共 50 条   
- 1
 - 2
 - 3
 - 4
 - 5
 - 6
 - 7
 - 8
 - 13
 
当前页变化拦截
通过before-change参数来达到页数跳转拦截的目的,目前可以拦截除page-size外的所有变化,可用于控制需要异步操作确认的跳转变化。
查看代码 < />
<template>
  <w-pagination :total="50" :page-size="4"
    :show="['prev', 'next', 'total', 'jump']"
    :before-change="interceptorHandler"></w-pagination>
</template>
<script>
  export default {
    methods: {
      interceptorHandler () {
        return new Promise((resolve) => {
          setTimeout(() => {
            const result = Math.random(1) > 0.5 ? true : false
            this.$message({
              message: result ? '通过拦截' : '发生错误',
              type: result ? 'success' : 'info'
            })
            // resolve true or false
            resolve(result)
          }, 1000)
        })
      }
    },
  }
</script>API
Attributes
| 参数 | 说明 | 类型 | 可选值 | 默认值 | Version | 
|---|---|---|---|---|---|
| before-change | 当前页变化之前触发的回调函数(用于拦截除pageSize改变外发生的当前页变化) | Function | — | — | v1.3.0 | 
| current-pager | 当前第几页 | Number | — | 1 | |
| max-pager | 最大显示页码数目 (超过页码将被折叠, 最小值为5) | Number | — | 8 | |
| plain | 是否使用轻量级分页样式(不带背景) | Boolean | — | false | |
| page-size | 每页数据长度 | Number | — | 10 | |
| small | 是否启用小型分页 | Boolean | — | false | |
| show | 启用附加功能 | Array | total / jump / prev / next | ['prev', 'next'] | |
| total | 总数据长度 | Number | — | — | 
Events
| 参数 | 说明 | 回调参数 | Version | 
|---|---|---|---|
| actived-change | 当前页码发生变化时触发 | 当前页码 | |
| page-size-change | page-size发生变化时触发 | 每页数据长度 | |
| to-prev | 点击上一页 | 当前页码 | |
| to-next | 点击下一页 | 当前页码 | 
贡献者
| 类型 | 参与者 | 
|---|---|
| 设计者 | UED视觉组 | 
| 维护者 | UED前端组 |