0Pricing
React Academy · Lección

Ordenación, filtrado y paginación

Activar la ordenación de columnas, el filtrado global y por columna, y la paginación del lado del cliente con las funcionalidades de TanStack Table

Ordenación, filtrado y paginación es una lección gratuita de React Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de React Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de React Academy incluye 4 lecciones en total.

Activar la ordenación

Para añadir la ordenación, importe getSortedRowModel y añádalo a la configuración de useReactTable. También necesita un estado de ordenación (un array de objetos {id, desc}) y un controlador onSortingChange conectado al estado de React.

El modelo de filas ordenado envuelve el modelo de filas principal y reordena las filas según el estado de ordenación actual.

Cambiar la ordenación en el encabezado de una columna

Cada encabezado de columna expone column.getToggleSortingHandler(), que debe asignar al onClick de su elemento th. Al hacer clic, se alterna entre los estados ascendente, descendente y sin ordenar.

column.getIsSorted() devuelve 'asc', 'desc' o false, lo que permite mostrar la flecha indicadora de ordenación adecuada.

Ordenación por varias columnas

TanStack Table admite ordenar por varias columnas simultáneamente. Los usuarios mantienen pulsada la tecla Shift mientras hacen clic en el encabezado de una segunda columna para añadirla al array de ordenación sin quitar la primera.

El array sortingState contiene todas las columnas con ordenación activa en orden de prioridad, y el modelo de filas ordenado las aplica secuencialmente.

Filtrado global

Active el filtrado global importando getFilteredRowModel y añadiendo el estado globalFilter, además de un controlador onGlobalFilterChange. Conecte un elemento input al estado para filtrar todas las columnas a la vez.

De forma predeterminada, el filtro global utiliza una estrategia de coincidencia difusa o de inclusión, configurable mediante filterFns.

Filtrado por columna

Las columnas individuales pueden ofrecer sus propios filtros mediante column.getFilterValue() y column.setFilterValue(). Añada un campo de filtrado debajo de cada encabezado de columna y conéctelo a estos métodos.

Los filtros de columna y los filtros globales se acumulan: las filas deben superar todos los filtros activos para aparecer en el modelo de filas filtrado.

Activar la paginación

Importe getPaginationRowModel y añádalo a la configuración de useReactTable junto con un objeto de estado de paginación (pageIndex y pageSize) y un controlador onPaginationChange.

El modelo de filas paginado divide las filas filtradas (y ordenadas) para mostrar únicamente el segmento correspondiente a la página actual.

Navegar por las páginas

La instancia de la tabla expone table.nextPage(), table.previousPage(), table.firstPage() y table.lastPage() para la navegación. Use table.getCanNextPage() y table.getCanPreviousPage() para desactivar los botones en los límites.

table.setPageIndex(n) salta directamente a una página específica; table.setPageSize(n) cambia cuántas filas aparecen por página.

Información de paginación

table.getPageCount() devuelve el número total de páginas a partir del número de filas filtradas dividido por pageSize. table.getState().pagination.pageIndex proporciona el índice actual de la página, basado en cero.

Use estos valores para crear un contador de páginas como "Página 3 de 12" en la interfaz de paginación.

Combinar modelos de filas

Los modelos de filas se componen: getCoreRowModel proporciona la base, getFilteredRowModel la envuelve aplicando los filtros, getSortedRowModel envuelve los datos filtrados aplicando la ordenación y getPaginationRowModel divide el resultado para mostrar la página actual.

El orden es importante: primero se filtra, después se ordena y la paginación se aplica al final.

Consideraciones de rendimiento

TanStack Table aplica memoización internamente a los cálculos de los modelos de filas. Ordenar y filtrar conjuntos de datos grandes es eficiente porque solo se vuelven a calcular los modelos de filas que han cambiado.

Para conjuntos de datos extremadamente grandes (100,000+ filas), combine la paginación con la virtualización (react-virtual) para evitar renderizar todas las filas de la página a la vez.

Resumen de ordenación, filtrado y paginación

Conecte getSortedRowModel al estado de ordenación, getFilteredRowModel a globalFilter y a los estados de filtros de columna, y getPaginationRowModel al estado de paginación. Cada función se activa de forma optativa y se combina correctamente con las demás.

Los encabezados de columna controlan la ordenación mediante getToggleSortingHandler; los campos de entrada controlan el filtrado mediante setFilterValue y onGlobalFilterChange; los botones controlan la paginación mediante nextPage, previousPage y setPageIndex.

Estado de paginación de TanStack Table

¿Qué objeto contiene el índice de la página actual y el tamaño de página en el estado de paginación de TanStack Table?

Resumen de la lección

La ordenación requiere getSortedRowModel, el estado de ordenación y controladores de clic en los encabezados de columna. El filtrado utiliza getFilteredRowModel con el estado de los filtros globales y por columna. La paginación utiliza getPaginationRowModel con el estado pageIndex y pageSize.

Los tres modelos de filas se combinan automáticamente: primero se filtra, después se ordena y al final se pagina.

Preguntas frecuentes

¿La lección «Ordenación, filtrado y paginación» es gratis?

Sí — el texto completo de «Ordenación, filtrado y paginación» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de React Academy, actualiza a CoddyKit PRO. El curso de React Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Ordenación, filtrado y paginación»?

Activar la ordenación de columnas, el filtrado global y por columna, y la paginación del lado del cliente con las funcionalidades de TanStack Table Practicas React Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar React Academy?

No se requiere experiencia previa. React Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «Ordenación, filtrado y paginación»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de React Academy?

Sí. Cada lección de React Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Filosofía de TanStack Table y diseño headless
  2. Definir columnas y renderizar filas
  3. Ordenación, filtrado y paginación
  4. Selección de filas y tablas virtualizadas
← Volver a React Academy