Hola, vamos a hablar sobre el estado efectivo de React y 10 años de lecciones aprendidas. Tengo la suerte de haber estado trabajando en React desde que se liberó hace unos 10 años, así que estas son algunas lecciones que he aprendido en el camino.
Toda esta charla va a ser sobre la gestión del estado. Tenemos unos 20 minutos para trabajar aquí.
Comencemos con una de las cosas que veo más comúnmente en las revisiones de código, que es separar el estado relacionado. Esta solución es bastante simple, que es unificar el estado relacionado. Ahora, cuando hablo de estado relacionado, el concepto aquí es pensar en el estado donde las propiedades se aplican entre sí, donde se relacionan entre sí. Una buena manera de pensar en esto es si salto por aquí por un momento, tengo una pequeña aplicación configurada que está usando Vite. Voy a acercar un poco aquí, asegurarme de que todos puedan leer la pantalla, y luego tengo la aplicación funcionando aquí a la izquierda para que podamos ver las palabras hola allí. Ahora, ¿qué pasaría si viniera y dijera, crear algún estado, y quisiera crear algún estado como mi dirección y establecer dirección, y mi ciudad y establecer ciudad, y mi país, y así sucesivamente, así que puedes empezar a ver cómo he creado este estado separado para la dirección, para la ciudad, para el país. Y esto es a lo que me refiero con estado relacionado. Estos están relacionados porque presumiblemente cuando realmente voy a guardar este estado en el servidor, lo que voy a hacer es enviar una llamada HTTP para enviar mi dirección, y mi dirección está compuesta de mi dirección de calle, y mi ciudad, y mi país, y así sucesivamente. Así que lo útil aquí es en lugar de tener tres piezas de estado, es tener solo una pieza de estado, que podría llamarse mi dirección, y establecer dirección, y luego esto sería un objeto que contendría cosas como mi ciudad, estado, país, dirección de calle, y así sucesivamente. Así que unificar ese estado relacionado tiene un par de beneficios. Un beneficio es, observa que tengo una llamada de uso de estado aquí en lugar de dos, tres, cuatro, cinco, seis. Podría ser un número alto. Lo otro es, cuando voy a inicializar esto, es más simple porque piensa en lo que podría pasar. Imagina que esto es un formulario que se va a llenar con datos del servidor. Así que voy a buscar algunos datos a través de HTTP, y luego voy a poner esos datos en el estado. Bueno, si voy a hacer eso, es más fácil tomar el objeto que recibo del servidor y ponerlo en una pieza de estado que dividirlo en piezas separadas de estado. La otra razón por la que esto es útil es, cuando voy a enviar esto de vuelta al servidor, presumiblemente, voy a querer enviar un objeto al servidor, no un montón de solicitudes HTTP separadas. Así que cuando voy a enviar esto de vuelta, también es más simple. Disculpe. Bueno, esa es la primera lección, simplemente agrupando el estado relacionado.
Otro lugar donde comúnmente verás esto podría ser donde alguien elige crear estado como para la información del usuario, y podría tener nombre y apellido y todas estas otras piezas de datos que se relacionan con el usuario, tal vez su edad y sus mascotas, quién sabe, cualquier información que estemos recopilando, donde suceda que la recopilamos. De nuevo, agrupa esto en un objeto de usuario, tenemos una pieza de estado, es más fácil de hidratar y más fácil de enviar. Así que esa es la primera lección que he aprendido.
La segunda que he aprendido es, ten cuidado cuando hacemos múltiples llamadas de uso del estado seguidas. Y cuando vemos este tipo de cosas, a menudo es una señal de que deberíamos unificar esas llamadas de establecimiento de estado juntas unificando el estado, muy parecido a lo que acabo de mostrar antes, o también podría ser una señal de que deberíamos considerar el uso de UseReducer. Ahora, diré, recientemente hice una encuesta en Twitter y me sorprendió porque alrededor de la mitad de los desarrolladores de React nunca han usado UseReducer, y esto fueron miles de personas que respondieron a mi encuesta, y luego hay una cantidad justa que dice que prácticamente nunca lo usan.
Comments