Pagination 分页
使用分页组件,用户可以从一系列页面中选择某个特定的页面。
<Pagination count={10} />
<Pagination count={10} color="primary" />
<Pagination count={10} color="secondary" />
<Pagination count={10} disabled />
<Pagination count={10} variant="outlined" />
<Pagination count={10} variant="outlined" color="primary" />
<Pagination count={10} variant="outlined" color="secondary" />
<Pagination count={10} variant="outlined" disabled />
<Pagination count={10} shape="rounded" />
<Pagination count={10} variant="outlined" shape="rounded" />
<Pagination count={10} size="small" />
<Pagination count={10} />
<Pagination count={10} size="large" />
<Pagination count={10} showFirstButton showLastButton />
<Pagination count={10} hidePrevButton hideNextButton />
<Pagination count={11} defaultPage={6} siblingCount={0} />
<Pagination count={11} defaultPage={6} /> {/* Default ranges */}
<Pagination count={11} defaultPage={6} siblingCount={0} boundaryCount={2} />
<Pagination count={11} defaultPage={6} boundaryCount={2} />
Page: 1
<Typography>Page: {page}</Typography>
<Pagination count={10} page={page} onChange={handleChange} />
usePagination
对于高级自定义用例,我们暴露了一个 headless 的 usePagination()
hook。 它支持的选项与分页组件大致相同,但不包括与 JSX 渲染有关的所有属性。 分页组件内部也使用此 hook。
import { usePagination } from '@material-ui/core/Pagination';
表格分页
Pagination
组件的设计是为了在不使用无限加载的情况下,将任意数量的项目进行分页。 比如说博客这样重视 SEO 的环境下,它是首选。
对于大型表格数据的分页,应该使用 TablePagination
组件。
<TablePagination
component="div"
count={100}
page={page}
onPageChange={handleChangePage}
rowsPerPage={rowsPerPage}
onRowsPerPageChange={handleChangeRowsPerPage}
/>
⚠️注意,
Pagination
页面的属性从 1 开始,以满足在 URL 中包含当前页面参数值的要求,而TablePagination
页面的属性则从 0 开始,以满足渲染大量表格数据时基于零开始的 JavaScript 数组的要求。
您可以在文档的 表格部分 中了解更多关于此用例的信息。
无障碍设计
ARIA
默认情况下,根节点具有 "导航(navigation)" 和 aria-label 的“分页导航” 的作用。 页面的项目带有一个 aria-label,用于标识项目的用途(“转到首页”,“转到上一页”,“转到第一页”等)。 你可以使用 getItemAriaLabel
属性来覆盖它们。
键盘输入
分页项目按标签顺序排列,标签索引为“0”。