Confini Suspense e priorità dello streaming
Posizioni i confini Suspense per controllare quali blocchi HTML vengono trasmessi per primi e quando i fallback diventano contenuto.
Confini Suspense e priorità dello streaming è una lezione React Academy gratuita su CoddyKit. Questa è la lezione 2 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.
Suspense come divisore dello streaming
I confini Suspense sono l'unità fondamentale della granularità dello streaming. Ogni confine Suspense nell'albero dei componenti crea una sezione che può essere trasmessa in modo indipendente: React può risolvere e trasmettere ogni confine secondo i propri tempi, indipendentemente dagli altri.
La shell: contenuti rapidi e sincroni
La shell comprende tutto ciò che si trova al di fuori dei confini Suspense: layout, navigazione, piè di pagina e qualsiasi contenuto disponibile in modo sincrono. La shell viene trasmessa per prima e rapidamente, offrendo subito agli utenti la struttura della pagina mentre le sezioni che dipendono dai dati vengono caricate in background.
I fallback nell'HTML iniziale
Quando React trasmette la shell, ogni confine Suspense i cui dati non sono ancora disponibili esegue il rendering della propria interfaccia di fallback, in genere uno skeleton di caricamento o uno spinner. Questo fallback è incluso nella risposta HTML iniziale, quindi l'utente vede subito un indicatore di caricamento invece di uno spazio vuoto.
Risoluzione e sostituzione dei fallback
Quando i dati di un confine Suspense vengono risolti, React trasmette l'HTML risolto insieme a un piccolo script inline. Lo script sposta il contenuto appena trasmesso da un elemento template nascosto alla posizione corretta nel DOM, sostituendo il fallback senza ricaricare completamente la pagina.
Il pattern dello script inline
React utilizza il pattern dell'elemento template HTML: il contenuto Suspense risolto viene trasmesso in un template nascosto, quindi uno script chiama una funzione interna di React per trasferire il contenuto del template nella posizione corretta del DOM. In questo modo la sostituzione può manipolare il DOM senza dipendere da un framework JavaScript.
Suspense annidato: tempistiche indipendenti
I confini Suspense annidati hanno tempistiche di risoluzione indipendenti. Un confine Suspense interno può essere risolto prima di quello esterno: React trasmette il contenuto interno non appena è pronto, indipendentemente dal fatto che il confine esterno sia stato risolto. In questo modo si massimizza il parallelismo nel caricamento dei dati.
Strategia di posizionamento: cosa va dove
Un posizionamento efficace di Suspense inserisce i componenti lenti e dipendenti dai dati all'interno dei confini Suspense, lasciando all'esterno i contenuti rapidi, statici o disponibili in modo sincrono. Le barre di navigazione, le sezioni hero con testo statico e i piè di pagina vanno lasciati all'esterno. Gli elenchi di prodotti, le dashboard degli utenti e i feed dei commenti vanno inseriti all'interno.
Ordine dello streaming: non necessariamente quello del documento
React trasmette i confini Suspense man mano che vengono risolti, non necessariamente nell'ordine in cui compaiono nel documento. Una sezione sotto la piega può essere risolta prima di una sezione visibile inizialmente se richiede meno dati. React gestisce correttamente l'inserimento nel DOM indipendentemente dall'ordine dello streaming.
Indicazioni di priorità e interazione dell'utente
L'idratazione selettiva di React 18 risponde all'interazione dell'utente: se l'utente fa clic o passa il cursore su un confine Suspense che non è ancora stato idratato, React dà priorità all'idratazione di quel confine. In questo modo le interazioni risultano reattive anche quando altre parti della pagina sono ancora in fase di idratazione.
Evitare confini troppo granulari
Un numero maggiore di confini Suspense offre più flessibilità nello streaming, ma un eccesso di confini aggiunge il sovraccarico degli script inline per la sostituzione. Una regola pratica consiste nell'inserire intere "sezioni" (contenuto above-the-fold, barra laterale, feed below-the-fold) invece dei singoli componenti. Da uno a tre confini Suspense per pagina rappresentano spesso il compromesso migliore.
Misurare l'impatto dello streaming con Chrome DevTools
Nella scheda Network di Chrome DevTools, utilizzi "Preserve log" e osservi la risposta durante lo streaming: il documento HTML cresce a blocchi. La scheda Performance mostra gli indicatori FCP e LCP; li confronti tra build con e senza streaming per quantificare il miglioramento. Imposti la limitazione su Fast 3G per accentuare l'effetto.
Fallback Suspense nell'HTML trasmesso in streaming
Cosa accade al fallback di un confine Suspense nella risposta HTML iniziale trasmessa in streaming?
Riepilogo della lezione
I confini Suspense suddividono l'albero React in sezioni che possono essere trasmesse in modo indipendente. La shell (al di fuori di Suspense) viene trasmessa per prima; i fallback compaiono immediatamente per i confini in attesa; il contenuto risolto sostituisce i fallback tramite script inline. I confini annidati hanno tempistiche indipendenti. Posizioni i confini a livello di sezione per ottenere una granularità ottimale dello streaming e lasci che il sistema di priorità di React gestisca l'ordine dell'idratazione determinato dalle interazioni.
Domande Frequenti
La lezione «Confini Suspense e priorità dello streaming» è gratuita?
Sì — il testo completo di «Confini Suspense e priorità dello streaming» è 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 «Confini Suspense e priorità dello streaming»?
Posizioni i confini Suspense per controllare quali blocchi HTML vengono trasmessi per primi e quando i fallback diventano contenuto. 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 2 di 4.
Quanto tempo richiede la lezione «Confini Suspense e priorità dello streaming»?
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
- Streaming in React 18: come funziona renderToPipeableStream
- Confini Suspense e priorità dello streaming
- Idratazione progressiva con idratazione selettiva
- Misurare l’impatto dello streaming: FCP, TTI e LCP