0Pricing
React Academy · Lezione

Pattern di comunicazione tra componenti fratelli

Coordinare due componenti fratelli tramite lo state del genitore condiviso e props callback.

Pattern di comunicazione tra componenti fratelli è 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.

Benvenuto

In questa lezione implementerà la comunicazione tra componenti fratelli in React coordinando due componenti tramite lo stato condiviso del componente padre e le props callback.

I componenti fratelli non possono comunicare direttamente

In React, i dati fluiscono verso il basso tramite le props. Due componenti fratelli non hanno alcun collegamento diretto. Tutte le comunicazioni tra fratelli passano dal loro componente padre comune.

Il pattern: stato condiviso nel componente padre

Il componente padre mantiene il valore condiviso nello stato e lo passa a entrambi i componenti fratelli: uno lo riceve come dato (lettore), mentre l'altro riceve un callback per modificarlo (scrittore).
function Parent() {
  const [selected, setSelected] = useState(null);
  return (
    <>
      <Picker onSelect={setSelected} />
      <Detail item={selected} />
    </>
  );
}

Componenti fratelli lettore e scrittore

Il componente fratello scrittore (Picker) chiama il callback del componente padre quando l'utente effettua una selezione. Il componente fratello lettore (Detail) riceve il valore risultante come prop. Nessuno dei due conosce l'altro.
function Picker({ onSelect }) {
  return <button onClick={() => onSelect('item-1')}>Pick item 1</button>;
}

function Detail({ item }) {
  return <p>Selected: {item}</p>;
}

Comunicazione bidirezionale

Entrambi i componenti fratelli possono essere contemporaneamente lettori e scrittori. Ognuno riceve il valore corrente E un callback onChange. Le modifiche apportate da uno dei due aggiornano lo stato condiviso del componente padre, che rifluisce verso entrambi.

Esempio di campi di modulo sincronizzati

Uno slider e un input numerico controllano entrambi lo stesso valore. Entrambi ricevono il valore e onChange dal componente padre. Modificando uno dei due componenti, l'altro si aggiorna automaticamente.
function VolumeControl() {
  const [vol, setVol] = useState(50);
  return (
    <>
      <input type="range" value={vol} onChange={e => setVol(+e.target.value)} />
      <input type="number" value={vol} onChange={e => setVol(+e.target.value)} />
    </>
  );
}

Evitare l'anti-pattern dell'event bus

Eviti di usare un emettitore globale di eventi (EventEmitter/PubSub) per la comunicazione tra componenti fratelli in React. In questo modo si aggira il flusso dei dati di React, rendendo lo stato invisibile e il debugging difficile.

Quando i componenti fratelli sono lontani

Se i componenti fratelli sono profondamente annidati sotto rami diversi dell'albero, sollevare lo stato fino al loro antenato comune causa un prop drilling eccessivo. In questo caso è appropriato usare Context o una libreria per la gestione dello stato.

Mantenere disaccoppiati i componenti fratelli

Nessuno dei due componenti fratelli dovrebbe importare o fare riferimento all'altro. Il componente padre è il coordinatore. Questo disaccoppiamento rende semplice sostituire uno dei due senza influire sull'altro.

Testare la comunicazione tra componenti fratelli

Testi il componente padre: simuli un'azione nel componente fratello scrittore, tramite l'interfaccia del componente padre, e verifichi che il componente fratello lettore mostri il valore corretto. Il componente padre è l'unità di coordinamento testabile.

Verifica rapida

Come comunicano tra loro due componenti React fratelli?

Riepilogo

Coordini i componenti fratelli tramite il loro componente padre comune: il componente padre mantiene lo stato condiviso, passa i dati ai lettori e i callback agli scrittori. Nessuno dei due componenti fratelli deve conoscere l'altro.

Prossima lezione

Prossima lezione: **Scegliere la posizione corretta dello stato** — applicherà un framework decisionale per lo stato locale, sollevato o globale.

Domande Frequenti

La lezione «Pattern di comunicazione tra componenti fratelli» è gratuita?

Sì — il testo completo di «Pattern di comunicazione tra componenti fratelli» è 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 «Pattern di comunicazione tra componenti fratelli»?

Coordinare due componenti fratelli tramite lo state del genitore condiviso e props callback. 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 «Pattern di comunicazione tra componenti fratelli»?

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