Pagination 分页
当数据量过多时,使用分页分解数据。
基础用法
设置 layout 属性,用逗号分隔布局元素。 分页元素包括:prev (上一页按钮)、next (下一页按钮)、pager (页码列表)、jumper (跳转输入框)、total (总条目数)、sizes (用于确定页码大小的选择器) 以及 -> (在此符号后的所有元素都将被拉至右侧)。
页码按钮的数量
默认情况下,当总页数超过 7 页时,Pagination 会折叠额外的页码按钮。 这可以通过 pager-count 属性进行配置。
带有背景色的按钮
设置 background 属性,分页按钮将带有背景色。
小型分页
在空间有限的情况下,可以使用小型分页。
设置 size 属性来改变尺寸。 这里演示了 small 尺寸。
只有一页时隐藏分页
当只有一页时,可以通过设置 hide-on-single-page 属性来隐藏分页。
附加功能
根据场景添加更多模块。
本例是一个完整的用例。 它使用 size-change 和 current-change 事件来处理页码大小和当前页的更改。 page-sizes 接受一个整数数组,其中的每个整数代表 sizes 选择器选项中的不同页码大小,例如 [100, 200, 300, 400] 表示选择器将有四个选项:每页 100、200、300 或 400 条目。
API
属性
| 名称 | 描述 | 类型 | 默认值 |
|---|---|---|---|
| size 尺寸 2.7.6 | 分页尺寸 | 枚举 | 'default' |
| 背景色 | 分页按钮是否带有背景色 | boolean | false |
| page-size / v-model:page-size | 每页显示条目个数 | number | — |
| default-page-size | 每页显示条目数的初始值,不设置则默认为 10 | number | — |
| total | 总条目数 | number | — |
| page-count | 总页数。 设置 total 或 page-count 之一即可显示分页;如果需要 page-sizes,则必须设置 total | number | — |
| pager-count | 页码按钮的数量。 当总页数超过此值时,Pagination 会进行折叠 | number | 7 |
| current-page / v-model:current-page | 当前页码 | number | — |
| default-current-page | 当前页码的初始值,不设置则默认为 1 | number | — |
| layout | 分页布局,子组件名用逗号分隔 | string | prev, pager, next, jumper, ->, total |
| page-sizes | 每页显示个数选择器的选项设置 | array | [10, 20, 30, 40, 50, 100] |
| append-size-to 2.8.4 | 每页显示个数下拉框插入至哪个元素 | string | — |
| popper-class | 每页显示个数选择器下拉框的自定义类名 | string | '' |
| popper-style 2.11.5 | 每页显示个数选择器下拉框的自定义样式 | string / object | — |
| prev-text | 替代图标显示的上一页文字 | string | '' |
| prev-icon | 上一页按钮的图标,优先级低于 prev-text | string / Component | ArrowLeft |
| next-text | 替代图标显示的下一页文字 | string | '' |
| next-icon | 下一页按钮的图标,优先级低于 next-text | string / Component | ArrowRight |
| disabled | 是否禁用分页 | boolean | false |
| teleported 2.3.13 | 是否将分页下拉列表插入至 body | boolean | true |
| hide-on-single-page | 只有一页时是否隐藏 | boolean | false |
| small 已弃用 | 是否使用小型分页 | boolean | false |
警告
我们会检测一些已弃用的用法,如果您的分页未显示或运行不符合预期,请检查以下规则
- 您必须定义
total或page-count之一,否则我们无法确定总页数。 当两者都定义时,page-count具有更高优先级。 - 如果定义了
current-page,则必须通过定义@update:current-page来监听current-page的更改,否则分页将无法正常运行。 - 如果定义了
page-size且显示了页码大小选择器(layout中包含sizes),则必须通过定义@update:page-size来监听page-size的更改,否则更改页码大小将无法正常运行。
事件
| 名称 | 描述 | 类型 |
|---|---|---|
| size-change | 当 page-size 改变时触发 | Function |
| current-change | 当 current-page 改变时触发 | Function |
| change 2.4.4 | 当 current-page 或 page-size 改变时触发 | Function |
| prev-click | 当用户点击上一页按钮且当前页改变时触发 | Function |
| next-click | 当用户点击下一页按钮且当前页改变时触发 | Function |
警告
不推荐使用上述事件(但出于兼容性原因仍支持),更好的选择是使用 v-model 进行双向数据绑定。
插槽
| 名称 | 描述 |
|---|---|
| default | 自定义内容。 要使用此功能,您需要在 layout 中声明 slot |