Así que déjame entender esto correctamente. Esto significa que seríamos capaces de leer los valores del contexto condicionalmente, y de hecho, hemos aprendido en este tweet de Andrew Clarke que ya podemos. Ya podemos llamar a use context condicionalmente. ¿Pero por qué? ¿Por qué use context puede ser utilizado condicionalmente, mientras que otros hooks no pueden? Esa es la pregunta que vamos a intentar responder hoy.
Para entender por qué use context puede ser utilizado condicionalmente, primero necesitaremos entender por qué otros hooks no pueden. Y para entender esto, necesitaremos entender cómo funcionan los hooks. ¿Dónde se almacena el data de un hook? ¿Cómo hace React para hacer un seguimiento de nuestros data a través del tiempo y del renderizado? Para entender la diferencia de use context, primero necesitaremos entender React. Así que comencemos con esta primera pregunta.
¿Dónde se almacena el data de nuestro hook? ¿Dónde se almacena el data de nuestro componente? Cuando construimos nuestra aplicación por primera vez, React va a construir este árbol virtual hecho de nuestros componentes de React. Este árbol se llama el árbol de fibras. El árbol de fibras hace un seguimiento de los componentes de React que componen nuestra aplicación. Y a partir de este árbol, React va a inyectar nuestros elementos HTML en el DOM para mostrar nuestra aplicación en la pantalla. El árbol de fibras mantiene en memoria a través del tiempo y re-renderiza información sobre nuestros componentes, sus data, sus props y sus estados. De esta manera, cuando ocurre el re-renderizado, React sabe qué elementos deberían haber cambiado, cuáles deberían ser renderizados y qué información debería ser actualizada en el DOM.
Así que la primera vez que construimos nuestra aplicación, React crea este árbol de fibras. Cada vez que instanciamos un componente de React, React añade un nodo al árbol. Y tal nodo se llama una fibra. Echemos un vistazo a uno de ellos. Echemos un vistazo a una fibra en este componente de saludos. Cuando instanciamos saludos, estamos utilizando esta sintaxis JSX, y JSX es en realidad sólo azúcar sintáctica y es equivalente a la llamada de esta función JSX, o crear elemento hasta React 17. Y esta función JSX, cuando se ejecuta, creará, añadiremos, una nueva fibra en el árbol. Así que cuando instancias un componente con esta sintaxis JSX, en realidad añades un nodo en el árbol. Creas una nueva fibra.
Ahora, ¿cómo es realmente una fibra? Bueno, una fibra es simplemente un objeto que contiene información sobre un componente. Así que si miramos esta fibra de saludos, tenemos su tipo, tenemos sus props, los data de las props, se mantienen en memoria dentro de cada fibra, junto con un montón de otros estados y banderas para que React pueda hacer un seguimiento, y finalmente, tenemos su posición dentro del árbol de fibras. Hablando del árbol de fibras, veamos cómo se construye. Veamos qué pasa en el primer renderizado cuando se construye nuestro árbol de fibras. Vamos a recorrer nuestro code, y cada vez que instanciamos un componente de React con esta sintaxis JSX, React va a añadir una fibra al árbol.
Así que primero, tenemos este componente de aplicación que tiene el nombre de usuario en este estado que pasa a este componente de saludos, que lo muestra en un párrafo, y finalmente, tenemos este botón que podemos pulsar para cambiar nuestro nombre de usuario. Y aquí vamos.
Comments