Hablemos de "State management" y porqué es "complejo".
¿Que es el estado de una App?
En una versión muy simple estado son datos que cambian en el tiempo y que usamos para definir que se muestra o no al usuario.
Pero: ¿de donde vienen esos datos?
Esta pregunta es quiza la "piedra angular" para un modelo mental sobre el manejo de estado.
No todo el estado es igual ni proviene de las mismas fuentes.
Podemos definir a lo menos 2 categorías de estado
- UI state
- Server State
(shouts @tannerlinsley for this idea)
UI State: el estado que representa aspectos de la interfaz exclusivamente y que es modificado por acciones del usuario por ejemplo ejemplo un modal abierto/cerrado, el valor de un input o un menú.
Es un estado de fácil acceso, efímero y sincrono y es "simple" de manejar
Server state: Es ese estado que "no los pertenece", que es solicitado a un lugar externo, es asíncrono, por lo general no es global y puede estar "desactualizado" como una Cache
"uno de los dos problemas más difíciles en Ciencias de la Computación " 😅
¿Por que diferenciar estos estados?
Por que se manjena de manera diferente.
El estado del servidor es complejo, esta idle, loading/fetching, success or failed, puedes hacer re-fetch o trabajar con datos desactualizados etc.
UI state es simple.
Para manejar el estado de la UI nada mejor que el framework por si mismo. En el caso de @reactjs este ya ofrece las herramientas necesarias para su manejo. De hecho React es un manejador de estado : Composición, Prop drilling y Context son formas de lidiar con el estado de la UI
Server state implica manejar muchas más "variables" externas.
Una recomendación general es hacer "co-locación" del estado e ir subiendo el estado "State lifting" cuando es necesario.
Puedes escribir el código para obtener el estado del servidor y manejarlo adecuadamente?
Claro que puedes!!! 💪🏻💪🏻💪🏻 pero ¿debes?
Creo que no. Tu tarea es implementar la lógica de negocio de tu app particular no manejar todo el boilerplate para manejar todos los casos de uso de obtener estado externo. Pero: y si quieres hacerlo?
En caso de q quieras hacerlo React provee de las herramientas necesarias.
El uso de hooks es todo lo que necesitas. Composición para crear tus propios hooks serán tu herramienta principal.
useState, useReducer y useEffect matiashernandez.dev/react-useeffec…
Pero creo que es mejor dejar esta tarea a una librería que se encargue de buena manera como React-query react-query.tanstack.com/overview que entregará todo lo necesario para lidiar con el estado del servidor
Lo que nos deja nuevamente manejando el estado de la UI que puede derivar del estado obtenido del servidor o crearse con eventos.
Como manejarlo? Puedes usar cualquier librería como Redux...aunque no lo necesitas matiashernandez.dev/no-necesitas-r…
También puedes unirte a MicroBytes el newsletter de microcursos al que prontamente se agregará un curso de fundamentos de React microbytes.matiashernandez.dev
Y tu como manejas el estado de tus aplicaciones?
• • •
Missing some Tweet in this thread? You can try to
force a refresh
¿Por que el desarrollo web se ha vuelto tan complejo?
En mi opinión tiene que ver con principalmente dos razones: 1. Los requerimientos han crecido y las expectativas de los usuarios y clientes han aumentado respecto a que es y no posible "en la plataforma"
...
2. La web (como la ideó Sir @timberners_lee) no fue ni está "arquitecturada" (palabra inventada) para lo que la estamos usando hoy.
La web fue ideada e implementada como una plataforma para compartir documentos de hiper texto. "Documentos" (subrayo ésto) que se enlazan con otros
He ahí que el lenguaje principal de la web sea HTML. Javascript vino a ser un parche sobre los motores de los browsers para darle algo de interactividad y dinamismo a esos documentos
Q me disculpe @Pa__tty pero usar la vulnerabilidad de NNA como argumento para la presencialidad en clases de colegio es incongruente.
1ero que edades? Acaso todos los estudiantes podrán llevar a cabo los protocolos de autocuidado?
2do hablan de la vulnerabilidad de estudiantes...
Si hablamos de estudiantes vulnerables lo más seguramente también serán establecimientos de escasos recursos por lo que es muy difícil asegurar protocolos de seguridad (en cuanto a insumos).
Vulnerabilidad, si es económica entonces hablamos de uso de transporte público, es decir, espacios aglomerados y sabemos que los menores no serán vacunados, ergo, exposición a posibles contagios ya que aun no se alcanza inmunidad de grupo.
He leído varias veces este tipo de preguntas.
¿Se puede usar React con....? O ¿Cómo usar React con X...? Siendo X alguna tecnología para desarrollo de APIS como Rails, Django, PHP/Laravel,.Net y en general la respuesta es la misma.
2 opciones posibles (no sólo para React) 🧵
La primera opciones es simple. Crea una api Rest o un endpoint graphql y listo.
React (y otros frameworks) pueden funcionar "solos" (una SPA). Es decir se distribuye un grupo de archivos estáticos que son servidos en algún CDN y se comunican con el servidor mediante alguna API.
Esto quiere decir que React (y los demás) son agnósticos de la tecnología de servidor usada ya que el medio de comunicación son solo llamadas HTTP (POST, GET, etc) que transmiten json.
¿Clases o funciones al escribir tus componentes en #React?
Esta es una pregunta bastante común entre quienes están comenzando o retomando el desarrollo web con React.
¿Cuál es el approach correcto o el mejor?
¿Que prefieres tu y por que?
Sigue un hilo 🧵
Hoy el uso de componentes funcionales es la forma "aconsejada" o preferida de escribir tus componentes, pero las clases aún siguen ahí y no se irán por un buen tiempo. Incluso hay muchas app en producción que aún usan componentes de clase ya q fueron escritas hace un tiempo...
¿Entonces como decidir que usar o que aprender?
Como siempre la respuesta depende.
Depende de tus objetivos y el ambiente en que desarrollarás.
Si estás comenzando deberías comenzar por aprender la forma "moderna" de escribir componentes, es decir usando funciones..
Hoy se celebra el día internacional de la mujer y la niña en la ciencia.
Y como padres también tenemos una labor, acercar la ciencia a niñas y niños.
Les recomiendo estos libros que a mis hijos. Mía e Inti les encantan.
Papá ¿donde se enchufa el sol? De @aberron
También, obviamente literatura nacional.
¿Por qué los perros mueven la cola?
Y
¿Qué son los mocos?
Del divulgador nacional por ontonomasia @GaboTuitero
También, astronomía (por cierto el CATA de @uchile tendrá curso de astronomía para niñez este 15/02 cata.cl/noticia.php?id…) y un gran exponente de esto es el profesor Maza.
Somos polo de estrella.