• Pagination分页
    • 何时使用
    • 代码演示
    • API

    Pagination分页

    采用分页的形式分隔长列表,每次只加载一个页面。

    何时使用

    • 当加载/渲染所有数据将花费很多时间时;

    • 可切换页码浏览数据。

    代码演示

    Pagination 分页 - 图1

    基本

    基础分页。

    1. import { Pagination } from 'antd';
    2. ReactDOM.render(<Pagination defaultCurrent={1} total={50} />, mountNode);

    Pagination 分页 - 图2

    更多

    更多分页。

    1. import { Pagination } from 'antd';
    2. ReactDOM.render(<Pagination defaultCurrent={6} total={500} />, mountNode);

    Pagination 分页 - 图3

    改变

    改变每页显示条目数。

    1. import { Pagination } from 'antd';
    2. function onShowSizeChange(current, pageSize) {
    3. console.log(current, pageSize);
    4. }
    5. ReactDOM.render(
    6. <div>
    7. <Pagination
    8. showSizeChanger
    9. onShowSizeChange={onShowSizeChange}
    10. defaultCurrent={3}
    11. total={500}
    12. />
    13. <br />
    14. <Pagination
    15. showSizeChanger
    16. onShowSizeChange={onShowSizeChange}
    17. defaultCurrent={3}
    18. total={500}
    19. disabled
    20. />
    21. </div>,
    22. mountNode,
    23. );

    Pagination 分页 - 图4

    跳转

    快速跳转到某一页。

    1. import { Pagination } from 'antd';
    2. function onChange(pageNumber) {
    3. console.log('Page: ', pageNumber);
    4. }
    5. ReactDOM.render(
    6. <div>
    7. <Pagination showQuickJumper defaultCurrent={2} total={500} onChange={onChange} />
    8. <br />
    9. <Pagination showQuickJumper defaultCurrent={2} total={500} onChange={onChange} disabled />
    10. </div>,
    11. mountNode,
    12. );

    Pagination 分页 - 图5

    迷你

    迷你版本。

    1. import { Pagination } from 'antd';
    2. function showTotal(total) {
    3. return `Total ${total} items`;
    4. }
    5. ReactDOM.render(
    6. <div>
    7. <Pagination size="small" total={50} />
    8. <Pagination size="small" total={50} showSizeChanger showQuickJumper />
    9. <Pagination size="small" total={50} showTotal={showTotal} />
    10. </div>,
    11. mountNode,
    12. );

    Pagination 分页 - 图6

    简洁

    简单的翻页。

    1. import { Pagination } from 'antd';
    2. ReactDOM.render(<Pagination simple defaultCurrent={2} total={50} />, mountNode);

    Pagination 分页 - 图7

    受控

    受控制的页码。

    1. import { Pagination } from 'antd';
    2. class App extends React.Component {
    3. state = {
    4. current: 3,
    5. };
    6. onChange = page => {
    7. console.log(page);
    8. this.setState({
    9. current: page,
    10. });
    11. };
    12. render() {
    13. return <Pagination current={this.state.current} onChange={this.onChange} total={50} />;
    14. }
    15. }
    16. ReactDOM.render(<App />, mountNode);

    Pagination 分页 - 图8

    总数

    通过设置 showTotal 展示总共有多少数据。

    1. import { Pagination } from 'antd';
    2. ReactDOM.render(
    3. <div>
    4. <Pagination
    5. total={85}
    6. showTotal={total => `Total ${total} items`}
    7. pageSize={20}
    8. defaultCurrent={1}
    9. />
    10. <br />
    11. <Pagination
    12. total={85}
    13. showTotal={(total, range) => `${range[0]}-${range[1]} of ${total} items`}
    14. pageSize={20}
    15. defaultCurrent={1}
    16. />
    17. </div>,
    18. mountNode,
    19. );

    Pagination 分页 - 图9

    上一步和下一步

    修改上一步和下一步为文字链接。

    1. import { Pagination } from 'antd';
    2. function itemRender(current, type, originalElement) {
    3. if (type === 'prev') {
    4. return <a>Previous</a>;
    5. }
    6. if (type === 'next') {
    7. return <a>Next</a>;
    8. }
    9. return originalElement;
    10. }
    11. ReactDOM.render(<Pagination total={500} itemRender={itemRender} />, mountNode);

    API

    1. <Pagination onChange="{onChange}" total="{50}" />
    参数说明类型默认值版本
    current当前页数number-
    defaultCurrent默认的当前页数number1
    defaultPageSize默认的每页条数number10
    disabled禁用分页boolean-3.10.0
    hideOnSinglePage只有一页时是否隐藏分页器booleanfalse
    itemRender用于自定义页码的结构,可用于优化 SEO(page, type: 'page' | 'prev' | 'next', originalElement) => React.ReactNode-
    pageSize每页条数number-
    pageSizeOptions指定每页可以显示多少条string[]['10', '20', '30', '40']
    showLessItemsshow less page itemsbooleanfalse
    showQuickJumper是否可以快速跳转至某页boolean | { goButton: ReactNode }false
    showSizeChanger是否可以改变 pageSizebooleanfalse
    showTotal用于显示数据总量和当前数据顺序Function(total, range)-
    simple当添加该属性时,显示为简单分页boolean-
    size当为「small」时,是小尺寸分页string""
    total数据总数number0
    onChange页码改变的回调,参数是改变后的页码及每页条数Function(page, pageSize)noop
    onShowSizeChangepageSize 变化的回调Function(current, size)noop