Así que estoy tratando de comprender los casos de uso de mejores prácticas de React Context API frente al patrón de Composición estándar.
Uno de los casos extremos, en mi opinión, sería un usuario autenticado que la aplicación usa sus datos (por ejemplo User: {name: string, pass: string, posts: Array<>, ...} ) en todo el código ( en diferentes componentes).
Intenté descifrar lo que React Docs tiene que decir al respecto, pero es un poco incómodo porque parece contradictorio.
Al principio, Docs da un par de ejemplos para el uso de contexto:
El contexto está diseñado para compartir datos que pueden considerarse "globales" para un árbol de componentes de React, como el usuario autenticado actual , el tema o el idioma preferido.
Pero luego dice que en muchos casos la Composición sería suficiente, y el ejemplo dado es sobre un usuario actual:
Por ejemplo, considere un componente de página que pasa un
useryavatarSizeprop varios niveles hacia abajo para que los componentesLinkyAvatarprofundamente anidados puedan leerlo... Una forma de resolver este problema sin contexto es pasar el propio componente Avatar para que el los componentes intermedios no necesitan saber sobre elusero los apoyos deavatarSize
Básicamente, después de decir que Context sería bueno para el manejo de datos de usuario, Docs da un ejemplo usando Composición.
No estoy tratando de criticar o burlarme de los Docs, definitivamente no es mi intención. Lo que estoy tratando de entender es, dado que obviamente ambas formas son aplicables, ¿cuál es la mejor práctica para el manejo de datos de usuario en toda la aplicación? ¿Hay alguna consideración que deba tener al elegir entre esos dos métodos, además de la comodidad? Veo que en los Documentos dice sobre Contexto:
Aplíquelo con moderación porque dificulta la reutilización de componentes.
¿Cómo es eso, especialmente en este caso? Puedo entenderlo en casos en los que no sabe qué datos requeriría su componente (y, por lo tanto, el uso de props.children ), pero ese no es el caso.