Pular para o conteúdo

Pagination

Navegue através de páginas de dados com controles customizáveis.

import { Pagination } from 'asterui'

Paginação Básica

Paginação simples com números de página.

import { Pagination } from 'asterui'
import { useState } from 'react'

function App() {
  const [current, setCurrent] = useState(1);
  
  return (
      <Pagination
        current={current}
        total={85}
        onChange={(page) => setCurrent(page)}
      />
    )
}

export default App

Com Alterador de Tamanho

Permite aos usuários alterar o tamanho da página.

import { Pagination } from 'asterui'
import { useState } from 'react'

function App() {
  const [current, setCurrent] = useState(1);
  const [pageSize, setPageSize] = useState(10);
  
  return (
      <Pagination
        current={current}
        total={500}
        pageSize={pageSize}
        showSizeChanger
        onChange={(page, size) => {
          setCurrent(page);
          setPageSize(size);
        }}
      />
    )
}

export default App

Mostrar Total

Exibe contagem total de itens.

Total 250 items
import { Pagination } from 'asterui'

function App() {
  return (
      <Pagination total={250} showTotal />
    )
}

export default App

Total Customizado

Renderização customizada da contagem total.

Showing 1-10 of 250 items
import { Pagination } from 'asterui'

function App() {
  return (
      <Pagination
        total={250}
        showTotal={(total, range) => `Showing ${range[0]}-${range[1]} of ${total} items`}
      />
    )
}

export default App

Salto Rápido

Permite aos usuários pular para uma página específica.

Go to
import { Pagination } from 'asterui'

function App() {
  return (
      <Pagination total={500} showQuickJumper />
    )
}

export default App

Todos os Recursos

Paginação com todos os recursos habilitados.

1-10 of 500
Go to
import { Pagination } from 'asterui'
import { useState } from 'react'

function App() {
  const [current, setCurrent] = useState(1);
  
  return (
      <Pagination
        current={current}
        total={500}
        showSizeChanger
        showQuickJumper
        showTotal={(total, range) => `${range[0]}-${range[1]} of ${total}`}
        onChange={(page) => setCurrent(page)}
      />
    )
}

export default App

Modo Simples

Paginação mínima com apenas controles anterior/próximo.

1 / 10
import { Pagination } from 'asterui'

function App() {
  return (
      <Pagination total={100} simple />
    )
}

export default App

Tamanhos

Diferentes tamanhos para controles de paginação.

Extra Small
Small
Medium (default)
Large
import { Pagination } from 'asterui'

function App() {
  return (
      <div className="space-y-4">
        <div>
          <div className="text-sm text-base-content/60 mb-2">Extra Small</div>
          <Pagination total={100} size="xs" />
        </div>
        <div>
          <div className="text-sm text-base-content/60 mb-2">Small</div>
          <Pagination total={100} size="sm" />
        </div>
        <div>
          <div className="text-sm text-base-content/60 mb-2">Medium (default)</div>
          <Pagination total={100} size="md" />
        </div>
        <div>
          <div className="text-sm text-base-content/60 mb-2">Large</div>
          <Pagination total={100} size="lg" />
        </div>
      </div>
    )
}

export default App

Desabilitado

Estado desabilitado para paginação.

import { Pagination } from 'asterui'

function App() {
  return (
      <Pagination total={100} disabled />
    )
}

export default App
PropriedadeDescriçãoTipoPadrão
currentNúmero da página atual (controlado)number-
defaultCurrentNúmero da página inicial padrãonumber1
totalNúmero total de itensnumber-
pageSizeNúmero de itens por página (controlado)number-
defaultPageSizeNúmero padrão de itens por páginanumber10
pageSizeOptionsOpções para seletor de tamanho de páginanumber[][10, 20, 50, 100]
onChangeCallback quando página ou pageSize muda(page: number, pageSize: number) => void-
onShowSizeChangeCallback quando pageSize muda(current: number, size: number) => void-
showSizeChangerMostrar seletor de tamanho de páginabooleanfalse
showQuickJumperMostrar entrada de salto rápido para páginabooleanfalse
showTotalMostrar contagem total ou função de renderização customizadaboolean | ((total: number, range: [number, number]) => ReactNode)false
simpleModo simples com controles mínimosbooleanfalse
sizeTamanho dos botões de paginação'xs' | 'sm' | 'md' | 'lg''md'
disabledDesabilitar todos os controles de paginaçãobooleanfalse
classNameClasses CSS adicionaisstring-
  • Usa elemento nav com aria-label="Pagination"
  • Página atual é marcada com aria-current="page"
  • Botões desabilitados têm estado aria-disabled apropriado
  • Entrada de salto rápido tem rótulo acessível