0Pricing
React Academy · Lección

Prop drilling: cuándo es perjudicial y cuándo está bien

Identifique cadenas profundas de prop drilling y distinga el ruido de la complejidad real.

Prop drilling: cuándo es perjudicial y cuándo está bien es una lección gratuita de React Academy en CoddyKit. Esta es la lección 2 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 aprenderá a identificar el prop drilling, comprender cuándo causa problemas reales y distinguirlo de las situaciones en las que pasar props es la solución correcta y sencilla.

¿Qué es el prop drilling?

El prop drilling ocurre cuando pasa una prop a través de componentes intermedios que no la utilizan — solo la necesitan sus componentes hijos. Cada capa intermedia debe aceptar y reenviar 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} />;
}

Cuándo el prop drilling está bien

El prop drilling durante 1–2 niveles suele estar perfectamente bien y ser la solución más sencilla. El coste de añadir Context o una biblioteca de estado es mayor que el de pasar una prop adicional a poca profundidad.

Señales de que el prop drilling se ha convertido en un problema

El prop drilling es un problema cuando: (1) las props pasan por 4 o más niveles de componentes que no las utilizan, (2) cambiar el nombre de una prop requiere modificar muchos archivos, (3) es difícil saber qué componente consume realmente los datos.

Refactorización con composición de componentes

Antes de recurrir a Context, pruebe la **composición de componentes**. Pase el componente consumidor completamente renderizado como prop (o como children) en lugar de pasar datos sin procesar. La capa intermedia nunca necesita conocer los datos.
// 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 composición de componentes reduce el acoplamiento

La composición significa que el componente padre que posee los datos también renderiza directamente el componente consumidor. Los componentes intermedios de diseño reciben JSX terminado, por lo que están completamente desacoplados de los datos.

Cuándo usar Context

Use Context cuando: (1) la composición requiera pasar JSX complejo a través de muchas capas, (2) muchos componentes no relacionados del árbol necesiten los mismos datos (por ejemplo, el usuario actual, el tema o la configuración regional).

Cuándo usar una biblioteca de estado

Use Zustand, Redux o una biblioteca similar cuando el estado sea complejo, se actualice con frecuencia, necesite herramientas de desarrollo o deba compartirse entre árboles de componentes completamente separados.

El flujo de datos inverso

El prop drilling también se aplica a los callbacks. Pasar un controlador `onChange` cinco niveles hacia abajo es tan problemático como pasar datos. Aplique las mismas estrategias de composición y Context a los callbacks.

Flujo de decisión

Pregúntese: ¿cuántos niveles hay? 1–2: haga prop drilling. 3 o más: pruebe primero la composición. ¿Sigue siendo complicado? Use Context. ¿La lógica de actualización es compleja o abarca varios árboles? Use una biblioteca de estado.

Comprobación rápida

¿Qué solución debería probar ANTES de recurrir a Context para resolver el prop drilling?

Resumen

El prop drilling durante 1–2 niveles está bien. Más allá de 3 niveles, pruebe primero la composición de componentes. Use Context cuando haya muchos consumidores de los mismos datos. Use una biblioteca de estado para estados complejos o compartidos entre árboles.

A continuación

Siguiente lección: **Patrones de comunicación entre hermanos** — coordinará dos componentes hermanos mediante el estado compartido del padre y props de callback.

Preguntas frecuentes

¿La lección «Prop drilling: cuándo es perjudicial y cuándo está bien» es gratis?

Sí — el texto completo de «Prop drilling: cuándo es perjudicial y cuándo está bien» 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 «Prop drilling: cuándo es perjudicial y cuándo está bien»?

Identifique cadenas profundas de prop drilling y distinga el ruido de la complejidad real. 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 2 de 4.

¿Cuánto tiempo toma la lección «Prop drilling: cuándo es perjudicial y cuándo está bien»?

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