分页 Pagination
自研分页,页码省略号逻辑内置(总数 ≤7 全显示,否则首尾 + 当前页附近)。
Props
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
currentPage | number | 1 | 当前页(v-model) |
pageSize | number | 10 | 每页条数(v-model) |
total | number | 必填 | 总条数 |
size | string | 'default' | 尺寸(保留兼容 default/small) |
layout | string | 'total, sizes, prev, pager, next, jumper' | 布局配置,按关键词启用区块 |
pageSizes | number[] | [10, 20, 30, 100] | 每页条数选项 |
disabled | boolean | false | 禁用 |
background | boolean | true | 页码是否带背景 |
事件
| 事件 | 参数 | 说明 |
|---|---|---|
update:currentPage | number | 页码变化 |
update:pageSize | number | 每页条数变化 |
current-change | number | 当前页变化 |
size-change | number | 每页条数变化 |
pagination | { currentPage, pageSize } | 聚合事件,翻页/改每页条数均触发 |
示例
vue
<template>
<Pagination
v-model:current-page="page"
v-model:page-size="pageSize"
:total="total"
@pagination="onPagination"
/>
</template>
<script setup>
const onPagination = ({ currentPage, pageSize }) => {
fetchList({ page: currentPage, size: pageSize })
}
</script>