基础分页。

expand codeexpand code
import { Pagination } from 'antd';

ReactDOM.render(<Pagination defaultCurrent={1} total={50} />, mountNode);
  • Rows per page
    10 条/页
  • Showing 51-60 of 500
跳至
6
of 50 page
  • 更多分页。

    expand codeexpand code
    import { Pagination } from 'antd';
    
    ReactDOM.render(<Pagination defaultCurrent={6} total={500} />, mountNode);
    • Rows per page
      10 条/页
    • Showing 21-30 of 500
    跳至
    3
    of 50 page

  • 跳至
    3
    of 50 page
  • 改变每页显示条目数。

    expand codeexpand code
    import { Pagination } from 'antd';
    
    function onShowSizeChange(current, pageSize) {
      console.log(current, pageSize);
    }
    
    ReactDOM.render(
      <>
        <Pagination
          showSizeChanger
          onShowSizeChange={onShowSizeChange}
          defaultCurrent={3}
          total={500}
        />
        <br />
        <Pagination
          showSizeChanger
          onShowSizeChange={onShowSizeChange}
          defaultCurrent={3}
          total={500}
          disabled
        />
      </>,
      mountNode,
    );
    • Rows per page
      10 条/页
    • Showing 11-20 of 500
    跳至
    2
    of 50 page

  • 跳转

    快速跳转到某一页。

    expand codeexpand code
    import { Pagination } from 'antd';
    
    function onChange(pageNumber) {
      console.log('Page: ', pageNumber);
    }
    
    ReactDOM.render(
      <>
        <Pagination showQuickJumper defaultCurrent={2} total={500} onChange={onChange} />
        <br />
        <Pagination showQuickJumper defaultCurrent={2} total={500} onChange={onChange} disabled />
      </>,
      mountNode,
    );

    迷你版本。

    expand codeexpand code
    import { Pagination } from 'antd';
    
    function showTotal(total) {
      return `Total ${total} items`;
    }
    
    ReactDOM.render(
      <>
        <Pagination size="small" total={50} />
        <Pagination size="small" total={50} showSizeChanger showQuickJumper />
        <Pagination size="small" total={50} showTotal={showTotal} />
        <Pagination
          size="small"
          total={50}
          disabled
          showTotal={showTotal}
          showSizeChanger
          showQuickJumper
        />
      </>,
      mountNode,
    );

    简单的翻页。

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

    受控制的页码。

    expand codeexpand code
    import { Pagination } from 'antd';
    
    class App extends React.Component {
      state = {
        current: 3,
      };
    
      onChange = page => {
        console.log(page);
        this.setState({
          current: page,
        });
      };
    
      render() {
        return <Pagination current={this.state.current} onChange={this.onChange} total={50} />;
      }
    }
    
    ReactDOM.render(<App />, mountNode);

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

    expand codeexpand code
    import { Pagination } from 'antd';
    
    ReactDOM.render(
      <>
        <Pagination
          total={85}
          showTotal={total => `Total ${total} items`}
          defaultPageSize={20}
          defaultCurrent={1}
        />
        <br />
        <Pagination
          total={85}
          showTotal={(total, range) => `${range[0]}-${range[1]} of ${total} items`}
          defaultPageSize={20}
          defaultCurrent={1}
        />
      </>,
      mountNode,
    );

    展示所有配置选项。

    expand codeexpand code
    import { Pagination } from 'antd';
    
    ReactDOM.render(
      <Pagination
        total={85}
        showSizeChanger
        showQuickJumper
        showTotal={total => `Total ${total} items`}
      />,
      mountNode,
    );

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

    expand codeexpand code
    import { Pagination } from 'antd';
    
    function itemRender(current, type, originalElement) {
      if (type === 'prev') {
        return <a>Previous</a>;
      }
      if (type === 'next') {
        return <a>Next</a>;
      }
      return originalElement;
    }
    
    ReactDOM.render(<Pagination total={500} itemRender={itemRender} />, mountNode);

    API#

    <Pagination onChange={onChange} total={50} />
    参数说明类型默认值版本
    current当前页数number-
    defaultCurrent默认的当前页数number1
    defaultPageSize默认的每页条数number10
    disabled禁用分页boolean-
    hideOnSinglePage只有一页时是否隐藏分页器booleanfalse
    itemRender用于自定义页码的结构,可用于优化 SEO(page, type: 'page' | 'prev' | 'next', originalElement) => React.ReactNode-
    pageSize每页条数number-
    pageSizeOptions指定每页可以显示多少条string[][10, 20, 50, 100]
    responsive当 size 未指定时,根据屏幕宽度自动调整尺寸boolean-
    showLessItems是否显示较少页面内容booleanfalse
    showQuickJumper是否可以快速跳转至某页boolean | { goButton: ReactNode }false
    showSizeChanger是否展示 pageSize 切换器,当 total 大于 50 时默认为 trueboolean-
    showTitle是否显示原生 tooltip 页码提示booleantrue
    showTotal用于显示数据总量和当前数据顺序function(total, range)-
    simple当添加该属性时,显示为简单分页boolean-
    size当为 small 时,是小尺寸分页default | smalldefault
    total数据总数number0
    onChange页码或 pageSize 改变的回调,参数是改变后的页码及每页条数function(page, pageSize)-
    onShowSizeChangepageSize 变化的回调function(current, size)-