Ir al contenido

Pagination

Navega a través de páginas de datos con controles personalizables.

import { Pagination } from 'asterui'

Paginación básica

Paginación simple con 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

Con cambiador de tamaño

Permite a los usuarios cambiar el tamaño de 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

Muestra el conteo total de elementos.

Total 250 items
import { Pagination } from 'asterui'

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

export default App

Total personalizado

Renderizado personalizado del conteo 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 a los usuarios saltar a una página específica.

Go to
import { Pagination } from 'asterui'

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

export default App

Todas las características

Paginación con todas las características habilitadas.

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 simple

Paginación mínima con solo controles anterior/siguiente.

1 / 10
import { Pagination } from 'asterui'

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

export default App

Tamaños

Diferentes tamaños para controles de paginación.

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

Deshabilitado

Estado deshabilitado para paginación.

import { Pagination } from 'asterui'

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

export default App
PropiedadDescripciónTipoPredeterminado
currentNúmero de página actual (controlado)number-
defaultCurrentNúmero de página inicial predeterminadonumber1
totalNúmero total de elementosnumber-
pageSizeNúmero de elementos por página (controlado)number-
defaultPageSizeNúmero predeterminado de elementos por páginanumber10
pageSizeOptionsOpciones para selector de tamaño de páginanumber[][10, 20, 50, 100]
onChangeCallback cuando cambia la página o pageSize(page: number, pageSize: number) => void-
onShowSizeChangeCallback cuando cambia pageSize(current: number, size: number) => void-
showSizeChangerMostrar selector de tamaño de páginabooleanfalse
showQuickJumperMostrar entrada de salto rápido a páginabooleanfalse
showTotalMostrar conteo total o función de renderizado personalizadaboolean | ((total: number, range: [number, number]) => ReactNode)false
simpleModo simple con controles mínimosbooleanfalse
sizeTamaño de los botones de paginación'xs' | 'sm' | 'md' | 'lg''md'
disabledDeshabilitar todos los controles de paginaciónbooleanfalse
classNameClases CSS adicionalesstring-
  • Usa elemento nav con aria-label="Pagination"
  • La página actual está marcada con aria-current="page"
  • Los botones deshabilitados tienen el estado aria-disabled apropiado
  • La entrada de salto rápido tiene etiqueta accesible