"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Prop Drilling en React: definición y ejemplos

Prop Drilling en React: definición y ejemplos

Publicado el 2024-08-21
Navegar:688

Prop Drilling in React: definition and examples

¿Alguna vez te has encontrado en una situación en la que necesitas ingresar algunos datos en un componente que está enterrado profundamente en tu aplicación React? Tienes esta información importante en un nivel alto, pero tu componente está muy abajo en el árbol y ahora estás atrapado pasando accesorios a través de un montón de capas solo para llegar allí. Esto es lo que llamamos “perforación de puntal”.

Empiezas enviando la información como accesorio desde el componente principal a su hijo directo. Luego, ese niño pasa la misma información a su propio hijo, y así sucesivamente, capa por capa, hasta que el mensaje finalmente llega al componente que realmente lo necesita.

Entonces, si estás lidiando con muchos accesorios que viajan a través de tu árbol de componentes y sientes que está un poco exagerado, probablemente estés lidiando con la perforación de accesorios. Profundicemos en qué es y por qué podría valer la pena buscar formas alternativas de manejar sus datos.

¿Qué es la perforación de puntal?

La perforación de accesorios, a veces denominada "enhebrado de accesorios" o "encadenamiento de componentes", es el método de pasar datos de un componente principal a través de una serie de componentes secundarios anidados utilizando accesorios.

Esto sucede cuando necesitas enviar un accesorio a través de múltiples niveles de componentes para llevarlo a un componente secundario profundamente anidado que lo requiere. Cada componente intermedio de la cadena tiene que reenviar el puntal, incluso si no lo utiliza directamente.

La metáfora del aula.

Imagine que un profesor necesita compartir una información importante con el último estudiante de una larga fila de escritorios. En lugar de entregar el mensaje directamente, el profesor se lo entrega al primer alumno. Luego, este estudiante lo pasa al siguiente, y así sucesivamente, y cada estudiante de la fila reenvía el mensaje al siguiente hasta que finalmente llega al último estudiante. En este escenario, cada estudiante actúa como intermediario, asegurando que la información viaje desde la fuente hasta su destinatario final. Este proceso refleja la perforación de puntales en la programación, donde los datos se transmiten a través de múltiples capas de componentes antes de llegar al que realmente los necesita.

Veamos esto en un ejemplo de código:

// Parent Component (Teacher)
function Teacher() {
  const messageToLastStudent = "Helo, Last Student!";
  return (
    
  );
}

// Child Component (First Student)
function FirstStudent({ message }) {
  // The message is passed directly as prop, without be used here.
  return (
    
  );
}

// Grandson Component (Last Student)
function LastStudent({ message }) {
  return 

{message}

; // Here the message is finally used. }

Dificultades con la perforación de puntales

La exploración de accesorios es bastante útil cuando el árbol de componentes de tu aplicación es pequeño y simple. Es fácil pasar datos de un padre a algunos hijos anidados. Pero a medida que tu aplicación crece, puedes encontrar algunos problemas:

  • Código de complejidad: la perforación de apoyo puede agregar complejidad y texto repetitivo adicional, especialmente en árboles de componentes grandes. A medida que los componentes se anidan más, realizar un seguimiento del flujo de accesorios se vuelve más difícil y puede ensuciar el código base.

  • Impacto en el rendimiento: Pasar datos a varias capas de componentes puede tener un impacto negativo en el rendimiento, especialmente si trabaja con grandes volúmenes de datos. Esto se debe a que cada componente de la cadena debe volver a renderizarse cuando las propiedades cambian, lo que puede provocar una nueva renderización innecesaria.

Resolver problemas de perforación de puntales

¡Pero no todo está perdido! Contamos con formas eficientes de evitar la perforación con puntales y mantener el rendimiento de la aplicación:

  • API de contexto: La API de contexto en React ayuda a evitar la perforación de accesorios al permitirle compartir datos directamente entre componentes sin pasar accesorios por cada nivel del árbol de componentes. Al utilizar React.createContext y Context.Provider, puede hacer que los datos estén disponibles para cualquier componente dentro del proveedor, eliminando la necesidad de pasar accesorios a varias capas. Esto simplifica la gestión de datos y reduce la complejidad de la jerarquía de componentes.

  • Bibliotecas de gestión estatal:
    Las bibliotecas de administración de estado ayudan a evitar la perforación de accesorios al proporcionar un almacén centralizado para los datos de las aplicaciones. Bibliotecas como Redux, MobX y Zustand administran el estado global, permitiendo que los componentes accedan y actualicen datos sin pasar accesorios por todos los niveles. Por ejemplo, Redux usa un almacén global y conecta o usa ganchos selectores para conectar componentes al estado, lo que simplifica el acceso a los datos y reduce la necesidad de un paso profundo de accesorios.

  • Componentes de orden superior (HOC):
    Los componentes de orden superior (HOC) ayudan a evitar la perforación de puntal al envolver los componentes con funcionalidades y datos adicionales. Un HOC toma un componente y devuelve uno nuevo con accesorios inyectados o comportamiento mejorado. Esto le permite proporcionar datos o funciones a componentes profundamente anidados sin pasar accesorios a través de cada capa. Por ejemplo, un HOC puede empaquetar un componente para proporcionarle datos de autenticación de usuario, agilizando el acceso a los datos y reduciendo el paso de accesorios.

Conclusión

En pocas palabras, la perforación de puntales puede ser una solución rápida para pasar datos a través de algunas capas de componentes, pero puede convertirse rápidamente en un lío a medida que su aplicación crece. Si bien funciona bien para aplicaciones más pequeñas, puede generar código desordenado y dolores de cabeza de mantenimiento en proyectos más grandes. Afortunadamente, existen herramientas como Context API, bibliotecas de administración de estado y componentes de orden superior para ayudarlo a esquivar la trampa de perforación de accesorios y mantener su código base limpio y manejable. Entonces, la próxima vez que tengas que lidiar con accesorios, ¡considera estas alternativas para que todo funcione sin problemas!

¡Construyamos el futuro! ?

Declaración de liberación Este artículo se reproduce en: https://dev.to/iclefyson/prop-drilling-in-react-definition-and-examples-1395?1 Si hay alguna infracción, comuníquese con [email protected] para eliminarlo.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3