使用 Premium Chakra UI 组件更快地构建 💎

了解更多
跳到内容
文档演练场指南博客
赞助

分页

用于在一系列页面中导航。

源代码StorybookArk

用法

import { Pagination } from "@chakra-ui/react"
<Pagination.Root>
  <Pagination.PrevTrigger />
  <Pagination.Ellipsis />
  <Pagination.Item />
  <Pagination.PageText />
  <Pagination.NextTrigger />
</Pagination.Root>

快捷方式

Pagination 组件还为常见用例提供了一组快捷方式。

分页项

此组件根据 countpageSize 属性渲染页码。

渲染这个

<Pagination.Items />

是这个的简写形式

<Pagination.Context>
  {({ pages }) =>
    pages.map((page, index) =>
      page.type === "page" ? (
        <Pagination.Item key={index} {...page} />
      ) : (
        <Pagination.Ellipsis key={index} index={index} />
      ),
    )
  }
</Pagination.Context>

示例

尺寸

使用 size 属性来改变分页的尺寸。

信息
分页尺寸映射到 Button 组件的尺寸。

变体

使用 variant 属性来控制分页项和省略号的变体。

变体与 Button 组件的变体匹配。

受控

使用 pageonPageChange 属性来控制当前页面。

兄弟页数

使用 siblingCount 控制当前页码前后显示的兄弟页码数量。

紧凑型

使用 Pagination.PageText 创建紧凑型分页。这对于移动视图很有用。

这是将分页渲染为链接的示例。

附加

这是将分页与 Group 组件组合以附加分页项和触发器的示例。

计数文本

format="long" 传递给 Pagination.PageText 组件以显示计数文本。

数据驱动

这是控制分页状态并使用该状态来分块数据的示例。

Lorem ipsum dolor sit amet 1

Lorem ipsum dolor sit amet 2

Lorem ipsum dolor sit amet 3

Lorem ipsum dolor sit amet 4

Lorem ipsum dolor sit amet 5

属性

属性默认值类型
count *
数字

数据项总数

page '1'
数字

当前激活页

pageSize '10'
数字

每页数据项数量

siblingCount '1'
数字

活动页旁边显示的页码数量

type '\'button\''
'button' | 'link'

触发元素的类型

asChild
布尔值

使用提供的子元素作为默认渲染元素,结合它们的属性和行为。

欲了解更多详情,请阅读我们的 组合 指南。
defaultPage
数字

分页首次渲染时的初始页码。当您不需要控制分页状态时使用。

ids
Partial<{ root: string ellipsis(index: number): string prevTrigger: string nextTrigger: string item(page: number): string }>

手风琴中元素的 ID。用于组合时很有用。

onPageChange
(details: PageChangeDetails) => void

页码改变时调用

onPageSizeChange
(details: PageSizeChangeDetails) => void

页码大小改变时调用

translations
IntlTranslations

指定标识可访问性元素及其状态的本地化字符串

上一页

数字输入

下一页

密码输入