Skip to content

FxPagination 分页

当数据量过多时,使用分页分解数据。不依赖任何 UI 框架,基于 fxSelect(每页条数子部件)+ fxInput(跳页子部件)+ FxIcon(前后箭头)。

基础用法

页数较少时不显示省略号;大于 7 页时自动出现前后省略号。

带背景色

background 为页码与前后按钮添加背景色,当前页为主色实底。

更多元素

layout 控制元素及顺序,逗号分隔;-> 作为左右分界,其后的元素靠右排列。下方 demo 可切换尺寸 / 背景色 / 禁用,并组合 total / sizes / jumper

小尺寸

size="small" 使用小尺寸。

页码按钮数

pager-count 控制页码按钮数量(5-21 之间的奇数),默认 7。

只有一页时自动隐藏

hide-on-single-page 开启后,总页数为 1 时不渲染分页。

API

Attributes

参数说明类型默认值
v-model:current-page当前页(受控)number
default-current-page当前页初始值(非受控)number
v-model:page-size每页条数(受控)number
default-page-size每页条数初始值(非受控)number
total总条数(与 page-count 二选一)number
page-count总页数(与 total 二选一)number
pager-count页码按钮数(5-21 之间的奇数)number7
layout布局元素,逗号分隔string'prev, pager, next, jumper, ->, total'
page-sizes每页条数可选项number[][10, 20, 30, 40, 50, 100]
popper-classsizes 下拉的自定义类名string
popper-stylesizes 下拉的自定义样式CSSProperties
prev-text上一页按钮文字(优先于 prev-icon)string
prev-icon上一页按钮图标string | Componentep:arrow-left
next-text下一页按钮文字string
next-icon下一页按钮图标string | Componentep:arrow-right
teleportedsizes 下拉是否 teleport 到 bodybooleantrue
size尺寸'large' | 'default' | 'small''default'
background是否为按钮带背景色booleanfalse
disabled是否禁用booleanfalse
hide-on-single-page只有一页时是否隐藏booleanfalse
append-size-tosizes 下拉挂载点(选择器)string

Events

事件名说明回调参数
update:current-page当前页变化(val: number)
update:page-size每页条数变化(val: number)
change当前页或每页条数变化(currentPage: number, pageSize: number)
current-change当前页变化(val: number)
size-change每页条数变化(val: number)
prev-click点击上一页(val: number)
next-click点击下一页(val: number)

Slots

名称说明
defaultlayout'slot' 时插入的自定义内容,可放任意元素

实现说明

  • 受控 / 非受控current-page / page-size 支持 v-model 双向绑定,或用 default-current-page / default-page-size 设初始值(非受控)。传入 current-page 必须监听 update:current-page / current-change,否则 dev 环境告警且不渲染(避免父级无法同步状态)。
  • 页数推算:优先取 page-count,否则由 total / page-size 向上取整,至少 1。
  • 子部件prev / next(前后翻页 + FxIcon)、pager(页码列表 + 折叠省略号,hover/聚焦省略号切换为快进图标)、sizes(基于 fxSelect 的每页条数下拉)、jumper(基于 fxInput 的跳页输入)、total(总条数文案)。
  • 样式:走 @fx/styles token(--color-* / --radius-* / --fs-*),尺寸(按钮 32 / 小 24 / 大 40,元素间距 16)为常规分页规格;不引用任何第三方 UI 库 CSS 变量。