0Pricing
React Academy · Lezione

Ordinamento, filtraggio e paginazione

Abilitare l'ordinamento delle colonne, il filtraggio globale e per colonna e la paginazione lato client con le funzionalità di TanStack Table

Ordinamento, filtraggio e paginazione è una lezione React Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento React Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso React Academy include 4 lezioni in totale.

Abilitazione dell’ordinamento

Per aggiungere l’ordinamento, importi getSortedRowModel e lo aggiunga alla configurazione di useReactTable. È inoltre necessario uno stato di ordinamento, ovvero un array di oggetti {id, desc}, e un gestore onSortingChange collegato allo stato di React.

Il modello di righe ordinate avvolge il modello di righe principale e riordina le righe in base allo stato di ordinamento corrente.

Alternare l’ordinamento nell’intestazione di una colonna

Ogni intestazione di colonna espone column.getToggleSortingHandler(), che deve essere collegato all’evento onClick dell’elemento th. Facendo clic, si alternano gli stati crescente, decrescente e non ordinato.

column.getIsSorted() restituisce 'asc', 'desc' o false, consentendo di visualizzare la freccia indicatrice dell’ordinamento appropriata.

Ordinamento su più colonne

TanStack Table supporta l’ordinamento simultaneo su più colonne. Per aggiungere una seconda colonna all’array di ordinamento senza rimuovere la prima, l’utente tiene premuto il tasto Shift mentre fa clic sull’intestazione della seconda colonna.

L’array sortingState contiene tutte le colonne attivamente ordinate, in ordine di priorità, e il modello di righe ordinate applica i criteri in sequenza.

Filtraggio globale

Abiliti il filtraggio globale importando getFilteredRowModel e aggiungendo lo stato globalFilter insieme a un gestore onGlobalFilterChange. Colleghi un elemento input allo stato per filtrare contemporaneamente tutte le colonne.

Per impostazione predefinita, il filtro globale utilizza una strategia di corrispondenza fuzzy o includes, configurabile tramite filterFns.

Filtraggio a livello di colonna

Le singole colonne possono esporre i propri filtri tramite column.getFilterValue() e column.setFilterValue(). Aggiunga un input di filtro sotto ogni intestazione di colonna e lo colleghi a questi metodi.

I filtri di colonna e i filtri globali si combinano: per comparire nel modello di righe filtrate, una riga deve superare tutti i filtri attivi.

Abilitazione della paginazione

Importi getPaginationRowModel e lo aggiunga alla configurazione di useReactTable insieme a un oggetto di stato della paginazione, contenente pageIndex e pageSize, e a un gestore onPaginationChange.

Il modello di righe impaginato suddivide le righe filtrate e ordinate, mostrando solo la porzione relativa alla pagina corrente.

Navigazione tra le pagine

L’istanza della tabella espone table.nextPage(), table.previousPage(), table.firstPage() e table.lastPage() per la navigazione. Utilizzi table.getCanNextPage() e table.getCanPreviousPage() per disabilitare i pulsanti quando si raggiungono i limiti.

table.setPageIndex(n) consente di passare direttamente a una pagina specifica, mentre table.setPageSize(n) modifica il numero di righe visualizzate per pagina.

Informazioni sulla paginazione

table.getPageCount() restituisce il numero totale di pagine, calcolato dividendo il numero di righe filtrate per pageSize. table.getState().pagination.pageIndex restituisce l’indice corrente della pagina, a base zero.

Utilizzi questi valori per creare nell’interfaccia di paginazione un contatore come "Pagina 3 di 12".

Combinazione dei modelli di righe

I modelli di righe sono componibili: getCoreRowModel fornisce la base, getFilteredRowModel la avvolge applicando i filtri, getSortedRowModel avvolge i dati filtrati applicando l’ordinamento e getPaginationRowModel suddivide il risultato per la pagina corrente.

L’ordine è importante: l’ordinamento viene applicato dopo il filtraggio e la paginazione per ultima.

Considerazioni sulle prestazioni

TanStack Table memorizza internamente i calcoli dei modelli di righe. L’ordinamento e il filtraggio di grandi insiemi di dati sono efficienti perché vengono ricalcolati solo i modelli di righe modificati.

Per insiemi di dati estremamente grandi, con oltre 100.000 righe, combini la paginazione con la virtualizzazione (react-virtual) per evitare di eseguire il rendering di tutte le righe della pagina contemporaneamente.

Riepilogo di ordinamento, filtri e paginazione

Colleghi getSortedRowModel allo stato di ordinamento, getFilteredRowModel a globalFilter e agli stati dei filtri di colonna, e getPaginationRowModel allo stato della paginazione. Ogni funzionalità è opzionale e si combina senza problemi con le altre.

Le intestazioni delle colonne gestiscono l’ordinamento tramite getToggleSortingHandler; gli input gestiscono i filtri tramite setFilterValue e onGlobalFilterChange; i pulsanti gestiscono la paginazione tramite nextPage, previousPage e setPageIndex.

Stato della paginazione di TanStack Table

Quale oggetto contiene l’indice della pagina corrente e la dimensione della pagina nello stato della paginazione di TanStack Table?

Riepilogo della lezione

L’ordinamento richiede getSortedRowModel, uno stato di ordinamento e gestori per il clic sulle intestazioni delle colonne. Il filtraggio utilizza getFilteredRowModel con uno stato dei filtri globale e dei filtri per colonna. La paginazione utilizza getPaginationRowModel con lo stato pageIndex e pageSize.

I tre modelli di righe si combinano automaticamente: prima il filtraggio, poi l’ordinamento e infine la paginazione.

Domande Frequenti

La lezione «Ordinamento, filtraggio e paginazione» è gratuita?

Sì — il testo completo di «Ordinamento, filtraggio e paginazione» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso React Academy, passa a CoddyKit PRO. Il corso React Academy include 4 lezioni in totale.

Cosa imparerò in «Ordinamento, filtraggio e paginazione»?

Abilitare l'ordinamento delle colonne, il filtraggio globale e per colonna e la paginazione lato client con le funzionalità di TanStack Table Eserciti React Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare React Academy?

Non è richiesta alcuna esperienza precedente. React Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «Ordinamento, filtraggio e paginazione»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione React Academy?

Sì. Ogni lezione React Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Filosofia di TanStack Table e design headless
  2. Definire le colonne e renderizzare le righe
  3. Ordinamento, filtraggio e paginazione
  4. Selezione delle righe e tabelle virtualizzate
← Torna a React Academy