DEV Community

Cover image for React · Prop drilling es una mala práctica?
Manuel Morales
Manuel Morales

Posted on

React · Prop drilling es una mala práctica?

El "tunelamiento" de props en React es una técnica para pasar props a través de componentes que no necesariamente necesitan esas props o incluso son conscientes de ellas. Esto es útil cuando quieres reutilizar un componente en diferentes contextos y necesitas modificar su comportamiento o aspecto sin tener que crear componentes completamente nuevos.

Para hacer el "tunelamiento" de props, puedes usar un componente intermediario que recibe las props que quieres "tunelar" y luego las pasa a su componente hijo. Por ejemplo:

Image description

En este ejemplo, MyButton y MyLink son componentes que no necesitan conocer la propiedad color o las propiedades relacionadas con enlaces (href, target, etc.). Sin embargo, al "tunelar" las props a través de ellos, se pueden usar de la misma manera que si fueran componentes que sí conocieran esas propiedades.

Hay varias formas de evitar el "tunelamiento" de props en React:

1.- Usa un componente especializado: en lugar de crear un componente genérico que se reutilice en diferentes contextos, crea componentes especializados que estén diseñados para manejar las props específicas que necesitan. Por ejemplo, en lugar de usar un componente genérico para crear botones y enlaces, crea componentes especializados como RedButton y ExternalLink que manejen sus propias propiedades.

2.- Usa la destructuración de props: en lugar de pasar todas las props a un componente hijo, puedes destructurar las props que necesitas y pasarlas individualmente. Esto hace que sea más fácil ver qué props están siendo utilizadas y por qué.

Image description

3.- Usa la composición en lugar del "tunelamiento" de props: en lugar de pasar props a través de componentes intermediarios, puedes usar la composición para combinar componentes de manera más controlada. Por ejemplo, en lugar de crear un componente genérico que se reutilice en diferentes contextos, puedes crear componentes especializados y combinarlos mediante la composición

Image description

Es importante tener en cuenta que no hay una solución única para evitar el "tunelamiento" de props y que la mejor opción dependerá de las necesidades de tu aplicación. Por lo tanto, deberías evaluar cuál de estas opciones es la más adecuada para ti en cada caso.

☕ Invitarme un café

Top comments (0)