0Pricing
React Academy · Lección

Patrones de comunicación entre hermanos

Coordine dos componentes hermanos mediante el estado compartido del padre y props de callback.

Patrones de comunicación entre hermanos es una lección gratuita de React Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de React Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de React Academy incluye 4 lecciones en total.

Bienvenida

En esta lección implementará la comunicación entre hermanos en React mediante la coordinación de dos componentes a través del estado compartido del padre y props de callback.

Los hermanos no pueden comunicarse directamente

En React, los datos fluyen hacia abajo a través de las props. Dos hermanos no tienen una conexión directa. Toda comunicación entre hermanos pasa por su padre común.

El patrón: estado compartido en el padre

El padre mantiene el valor compartido en el estado y lo pasa a ambos hermanos: uno lo recibe como datos (lector) y el otro recibe un callback para cambiarlo (escritor).
function Parent() {
  const [selected, setSelected] = useState(null);
  return (
    <>
      <Picker onSelect={setSelected} />
      <Detail item={selected} />
    </>
  );
}

Hermanos lectores y escritores

El hermano escritor (Picker) llama al callback del padre cuando el usuario realiza una selección. El hermano lector (Detail) recibe el valor resultante como prop. Ninguno de los dos hermanos conoce al otro.
function Picker({ onSelect }) {
  return <button onClick={() => onSelect('item-1')}>Pick item 1</button>;
}

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

Comunicación bidireccional

Ambos hermanos pueden ser lectores y escritores al mismo tiempo. Cada uno recibe el valor actual Y un callback `onChange`. Los cambios realizados por cualquiera de los hermanos actualizan el estado compartido del padre, que vuelve a fluir hacia ambos.

Ejemplo de campos de formulario sincronizados

Un control deslizante y una entrada numérica controlan el mismo valor. Ambos reciben el valor y `onChange` del padre. Al cambiar cualquiera de los componentes, el otro se actualiza automáticamente.
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)} />
    </>
  );
}

Evitar el antipatrón del bus de eventos

Evite usar un emisor de eventos global (`EventEmitter/PubSub`) para la comunicación entre hermanos en React. Esto ignora el flujo de datos de React, hace que el estado sea invisible y dificulta la depuración.

Cuando los hermanos están muy separados

Si los hermanos están profundamente anidados en ramas diferentes del árbol, elevar el estado hasta su ancestro común provoca un prop drilling excesivo. Ese es el momento adecuado para usar Context o una biblioteca de estado.

Mantener desacoplados a los hermanos

Ninguno de los hermanos debería importar ni referenciar al otro. El padre es el coordinador. Este desacoplamiento facilita reemplazar un hermano sin afectar al otro.

Probar la comunicación entre hermanos

Pruebe el componente padre: simule una acción en el hermano escritor (a través de la interfaz del padre) y compruebe que el hermano lector muestra el valor correcto. El padre es la unidad coordinadora que se puede probar.

Comprobación rápida

¿Cómo se comunican entre sí dos componentes hermanos de React?

Resumen

Coordine a los hermanos mediante su padre común: el padre mantiene el estado compartido, pasa los datos a los lectores y pasa callbacks a los escritores. Ninguno de los hermanos necesita conocer al otro.

A continuación

Siguiente lección: **Elegir la ubicación adecuada para el estado** — aplicará un marco de decisión para elegir entre estado local, elevado o global.

Preguntas frecuentes

¿La lección «Patrones de comunicación entre hermanos» es gratis?

Sí — el texto completo de «Patrones de comunicación entre hermanos» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de React Academy, actualiza a CoddyKit PRO. El curso de React Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Patrones de comunicación entre hermanos»?

Coordine dos componentes hermanos mediante el estado compartido del padre y props de callback. Practicas React Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar React Academy?

No se requiere experiencia previa. React Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «Patrones de comunicación entre hermanos»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de React Academy?

Sí. Cada lección de React Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Elevar el estado: principios y ejemplos
  2. Prop drilling: cuándo es perjudicial y cuándo está bien
  3. Patrones de comunicación entre hermanos
  4. Elección de la ubicación adecuada del estado
← Volver a React Academy