0Pricing
React Academy · Lezione

Combinare virtualizzazione e recupero dei dati

Implementi lo scorrimento infinito attivando il recupero dei dati quando la lista virtualizzata raggiunge la fine.

Combinare virtualizzazione e recupero dei dati è una lezione React Academy gratuita su CoddyKit. Questa è la lezione 4 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.

Il modello dello scorrimento infinito

Lo scorrimento infinito carica altri dati quando l'utente si avvicina alla fine della lista, invece di usare la paginazione con pulsanti di pagina espliciti. In combinazione con la virtualizzazione, consente di esplorare enormi quantità di dati in modo fluido.

La lista mostra solo le righe visibili, mentre i nuovi dati vengono recuperati in background poco prima che l'utente raggiunga il fondo.

Il callback onItemsRendered

I componenti lista di react-window accettano un callback onItemsRendered che comunica quali indici degli elementi sono attualmente renderizzati. Fornisce gli indici di inizio e fine degli elementi visibili e di quelli in overscan.

Questo callback è il punto di aggancio allo scorrimento e consente di rilevare quanto l'utente ha già scorso la lista senza collegare direttamente gli eventi di scorrimento.

Rilevare overscanStopIndex in prossimità di itemCount

Per sapere quando recuperare altri dati, confronti overscanStopIndex restituito da onItemsRendered con itemCount corrente. Quando la finestra renderizzata si avvicina alla fine dei dati caricati, servono altri elementi.

Usare l'indice di fine dell'overscan concede un piccolo anticipo e attiva il recupero poco prima che l'utente raggiunga effettivamente l'ultima riga.

Attivare il recupero vicino alla fine

Quando l'indice di fine supera una soglia, ad esempio quando si trova a una schermata di distanza da itemCount, chiami la funzione di recupero per la pagina successiva. La protegga per evitare di inviare più richieste sovrapposte.

Un flag di caricamento o il controllo che una richiesta sia già in corso impedisce richieste duplicate mentre l'utente scorre la zona di attivazione.

Un indicatore di caricamento come ultimo elemento

Un espediente efficace consiste nell'impostare itemCount sul numero di elementi caricati più uno finché esistono altri dati. La riga aggiuntiva visualizza uno spinner, segnalando che il recupero è in corso.

Quando arrivano nuovi dati, il conteggio aumenta e la riga con lo spinner viene sostituita dal contenuto reale, offrendo un feedback visivo fluido.

react-window-infinite-loader

Il pacchetto complementare react-window-infinite-loader incapsula questa logica. Si forniscono isItemLoaded, loadMoreItems e itemCount e il pacchetto invoca la funzione di caricamento mentre l'utente scorre verso righe non caricate.

Gestisce il tracciamento degli intervalli già caricati e impedisce chiamate di caricamento ridondanti, semplificando la realizzazione di uno scorrimento infinito affidabile.

Righe segnaposto durante il recupero

Per gli indici non caricati è possibile visualizzare righe segnaposto o skeleton invece di lasciare spazi vuoti. La funzione di rendering verifica se l'elemento a un determinato indice è stato caricato e, in caso contrario, mostra uno skeleton.

Gli skeleton preservano il layout e comunicano l'avanzamento, offrendo una percezione migliore rispetto a uno spazio vuoto mentre arriva la pagina successiva.

Righe di errore e nuovo tentativo

Il recupero dei dati può fallire, quindi è importante gestire gli errori con attenzione. È possibile visualizzare in fondo una riga di errore speciale con un pulsante per riprovare, che invoca nuovamente la funzione di caricamento per l'intervallo non riuscito.

In questo modo la lista resta utilizzabile dopo un inconveniente e l'utente dispone di un modo chiaro per recuperare senza ricaricare l'intera pagina.

Paginazione con cursore e con offset

Due stili comuni di paginazione alimentano le liste infinite. La paginazione con offset effettua richieste in base al numero di pagina o al numero di elementi da saltare, mentre quella con cursore richiede gli elementi successivi a un cursore opaco che indica l'ultimo elemento visualizzato.

La paginazione con cursore è generalmente più affidabile per dati dinamici e soggetti a modifiche, perché evita gli spostamenti e le duplicazioni che gli offset possono causare quando vengono inseriti nuovi elementi.

Integrazione con React Query useInfiniteQuery

React Query useInfiniteQuery si abbina naturalmente alla virtualizzazione. Gestisce le pagine recuperate, il cursore successivo e gli stati di caricamento ed errore, mentre react-window esegue il rendering efficiente delle pagine appiattite.

Si appiattiscono le pagine in un unico array per la lista e si chiama fetchNextPage quando onItemsRendered raggiunge la soglia, ottenendo caching e retry senza costi aggiuntivi.

Verifica rapida: condizione di attivazione dello scorrimento infinito

Individui quando recuperare altri dati in una lista infinita virtualizzata.

Riepilogo: virtualizzazione con recupero dei dati

Lo scorrimento infinito carica le pagine quando l'utente si avvicina alla fine. onItemsRendered comunica gli indici e il confronto tra overscanStopIndex e itemCount indica quando effettuare il recupero, impedendo richieste duplicate.

Utilizzi righe segnaposto e di errore, react-window-infinite-loader per la gestione degli intervalli caricati e la paginazione con cursore per i dati dinamici. React Query useInfiniteQuery gestisce pagine, cursori e stati insieme al rendering di react-window.

Domande Frequenti

La lezione «Combinare virtualizzazione e recupero dei dati» è gratuita?

Sì — il testo completo di «Combinare virtualizzazione e recupero dei dati» è 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 «Combinare virtualizzazione e recupero dei dati»?

Implementi lo scorrimento infinito attivando il recupero dei dati quando la lista virtualizzata raggiunge la fine. 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 4 di 4.

Quanto tempo richiede la lezione «Combinare virtualizzazione e recupero dei dati»?

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. Il problema del rendering di liste numerose
  2. FixedSizeList: rendering di migliaia di elementi
  3. VariableSizeList: altezze dinamiche delle righe
  4. Combinare virtualizzazione e recupero dei dati
← Torna a React Academy