React Academy · Lezione

Prop drilling: quando è problematico e quando va bene

Individuare le catene di prop drilling profonde e distinguere il rumore dalla complessità reale.

Lezione 2 di 413 passaggi

Prop drilling: quando è problematico e quando va bene è 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.

Benvenuto

In questa lezione imparerà a identificare il prop drilling, a capire quando causa problemi reali e a distinguerlo dalle situazioni in cui passare le props è la soluzione corretta e più semplice.

Che cos'è il prop drilling

Il prop drilling si verifica quando si passa una prop attraverso componenti intermedi che non la utilizzano direttamente: ne hanno bisogno solo i componenti figli. Ogni livello intermedio deve accettare e inoltrare la prop.
// Middle component: receives 'user' only to pass it down
function Layout({ user }) {
  return <Sidebar user={user} />;
}
// Sidebar: receives 'user' only to pass it down
function Sidebar({ user }) {
  return <UserAvatar user={user} />;
}
// UserAvatar: actually uses 'user'
function UserAvatar({ user }) {
  return <img src={user.avatarUrl} />;
}

Quando il prop drilling va bene

Il prop drilling per 1–2 livelli è spesso perfettamente adeguato ed è la soluzione più semplice. Il costo di aggiungere Context o una libreria per la gestione dello stato è maggiore di quello di una prop aggiuntiva a una profondità ridotta.

Segnali che il prop drilling è diventato un problema

Il prop drilling è un problema quando: (1) le props attraversano 4 o più livelli di componenti che non le utilizzano, (2) rinominare una prop richiede modifiche in molti file, (3) è difficile capire quale componente consumi effettivamente i dati.

Refactoring con la composizione dei componenti

Prima di ricorrere a Context, provi la **composizione dei componenti**. Passi come prop (o children) il componente che consuma i dati, già completamente renderizzato, invece dei dati grezzi. Il livello intermedio non deve mai conoscere i dati.
// Instead of drilling 'user' through Layout → Sidebar → UserAvatar,
// render UserAvatar at the top level and pass it as a slot:
function App() {
  return <Layout sidebar={<UserAvatar user={user} />} />;
}

La composizione dei componenti riduce l'accoppiamento

La composizione significa che il componente padre che possiede i dati renderizza direttamente anche il componente che li utilizza. I componenti intermedi di layout ricevono JSX già pronto, quindi sono completamente disaccoppiati dai dati.

Quando usare Context

Utilizzi Context quando: (1) la composizione richiederebbe di passare JSX complesso attraverso molti livelli, (2) molti componenti non correlati nell'albero hanno bisogno degli stessi dati, ad esempio l'utente corrente, il tema o la lingua.

Quando usare una libreria per la gestione dello stato

Utilizzi Zustand, Redux o strumenti simili quando lo stato è complesso, viene aggiornato frequentemente, richiede devtools o deve essere condiviso tra alberi di componenti completamente separati.

Il flusso inverso dei dati

Il prop drilling si applica anche ai callback. Passare un gestore `onChange` per cinque livelli è doloroso quanto passare i dati. Applichi le stesse strategie di composizione e Context ai callback.

Percorso decisionale

Si chieda: quanti livelli ci sono? 1–2: esegua semplicemente il prop drilling. 3 o più: provi prima la composizione. Se la struttura è ancora complicata: utilizzi Context. Per una logica di aggiornamento complessa o tra alberi diversi: utilizzi una libreria per la gestione dello stato.

Verifica rapida

Quale soluzione dovrebbe provare PRIMA di ricorrere a Context per risolvere il prop drilling?

Riepilogo

Il prop drilling per 1–2 livelli va bene. Oltre 3 livelli, provi prima la composizione dei componenti. Utilizzi Context quando molti componenti devono usare gli stessi dati. Utilizzi una libreria per la gestione dello stato per stati complessi o condivisi tra alberi diversi.

Prossima lezione

Prossima lezione: **Pattern di comunicazione tra componenti fratelli** — imparerà a coordinare due componenti fratelli tramite lo stato condiviso del componente padre e le props callback.
Gratis per iniziare

Impara React con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
88
Lezioni
324

Domande Frequenti

La lezione «Prop drilling: quando è problematico e quando va bene» è gratuita?

Sì — il testo completo di «Prop drilling: quando è problematico e quando va bene» è 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 «Prop drilling: quando è problematico e quando va bene»?

Individuare le catene di prop drilling profonde e distinguere il rumore dalla complessità reale. 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 «Prop drilling: quando è problematico e quando va bene»?

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. Sollevare lo state: principi ed esempi
  2. Prop drilling: quando è problematico e quando va bene
  3. Pattern di comunicazione tra componenti fratelli
  4. Scegliere la posizione corretta dello state
← Torna a React Academy