Skip to content

Pagination 分页

介绍

数据量过多时,采用分页的形式将数据分隔,每次只加载一页。

基础用法

通过 v-model 来绑定当前页码。

html
<vd-pagination v-model="pager.page" :total="pager.total" />
ts
const pager = reactive({
  page: 1,
  total: 100,
});

展示省略号

通过 show-ellipsis 属性来控制显示省略号,点击后可以快速跳转。通过 ellipsis-jump 属性可控制省略号跳转页码数。

html
<vd-pagination
  v-model="pager.page"
  :total="pager.total"
  show-ellipsis
  ellipsis-jump="3"
/>
ts
const pager = reactive({
  page: 1,
  total: 100,
});

展示分页信息

通过 show-message 属性来控制显示分页信息。

html
<vd-pagination
  v-model="pager.page"
  :total="pager.total"
  show-message
/>
ts
const pager = reactive({
  page: 1,
  total: 100,
});

展示类型

通过 type 属性设置分页器的类型,可选值为 pagessimple,默认为 pages

html
<vd-pagination
  v-model="pager.page"
  :total="pager.total"
  type="simple"
/>
ts
const pager = reactive({
  page: 1,
  total: 100,
});

自定义文案

通过 prev-textnext-text 属性自定义上一页、下一页按钮文字。

html
<vd-pagination
  v-model="pager.page"
  :total="pager.total"
  prev-text="上一页"
  next-text="下一页"
/>
ts
const pager = reactive({
  page: 1,
  total: 100,
});

自定义按钮

通过 prevnext 插槽自定义上一页、下一页按钮图标。

html
<vd-pagination v-model="pager.page" :total="pager.total">
  <template #prev><vd-icon name="arrow-left" /></template>
  <template #next><vd-icon name="arrow-right" /></template>
</vd-pagination>
ts
const pager = reactive({
  page: 1,
  total: 100,
});

API

Props

参数说明类型默认值
v-model当前页数string-
type分页展示类型,可选值为 pages simplePaginationTypepages
total总数据个数number | string-
page-size每页显示数据个数number | string10
page-count总页数,如已设置 totalpageSize,该项将忽略number | string-
page-limit页码最大展示按钮个数number | string5
prev-text上一页按钮文字string-
next-text下一页按钮文字string-
ellipsis-jump省略号跳转页码数number | string3
show-ellipsis是否展示省略号booleanfalse
show-message是否展示分页信息booleanfalse
hide-on-single-page只有一页时是否隐藏booleanfalse

代替原始 Props

参数说明类型默认值
custom-id根节点idstring-
custom-class根节点类名ClassValue-
custom-style根节点样式StyleValue-

Events

事件名说明回调参数
click点击时触发MouseEvent
change页码改变时触发number

Slots

名称说明
default自定义内容
prev上一页按钮
next下一页按钮
pager页码按钮
index简单展示时的页码
message分页信息内容

赣ICP备2025061025号-1