Red de conocimiento informático - Problemas con los teléfonos móviles - Programación Tío

Programación Tío

En la era jQuery, cuando el código JS y la estructura DOM se mezclan y varios procesos se complican y entrelazan, se forma el código espagueti. La depuración puede resultar complicada cuando se utiliza el patrón de publicación-suscripción.

JQuery es una programación imperativa para "procesos". Por lo tanto, muchos comandos están destinados en última instancia a actualizar "datos" en la interfaz de usuario. ¿Por qué no cambiar los datos directamente?

Beijing y Shanghai, simplemente cambie city= "Beijing" por city= "Shanghai". Ya sea un avión o un tren que se avería mientras estás de excursión, o si te encuentras con un rey en el camino,

La importancia de un marco frontal moderno reside en la innovación de la resolución de problemas. -resolver el pensamiento, convirtiendo varios comandos de "proceso" en Descripción de "estado".

¿Qué es un país? El estado son datos dinámicos en la interfaz de usuario.

React nació en mayo de 2013. Pero antes de 2015, es probable que jQuery domine. React 0.13.0 se lanzó en marzo de 2015 y trajo la escritura de componentes de clase.

En la era de los componentes de clase React, el estado es this.state, actualizado por this.setState

Para evitar confusiones, React introdujo los conceptos de "componente" y " flujo de datos unidireccional". En el caso de estados y componentes, existe naturalmente una transferencia de estados entre componentes, lo que generalmente se denomina "comunicación".

La comunicación entre padre e hijo es simple, mientras que la comunicación entre componentes profundos y de larga distancia se basa en los accesorios de "promoción de estado" que se pasan capa por capa.

Luego, React presentó Context, una solución oficial para resolver la comunicación "entre capas" de componentes.

Sin embargo, Context es en realidad equivalente a "mejora del estado" sin optimización adicional del rendimiento, y su escritura es muy detallada.

Para optimizar el rendimiento, a menudo se agregan múltiples contextos, lo que hace que su escritura sea más detallada. Cuando el proyecto no es tan complejo, es mejor ir repasándolo capa por capa.

Hablando pragmáticamente, la "gestión estatal" consiste en resolver la comunicación "entre niveles" entre componentes.

Por supuesto, al utilizar la biblioteca de gestión estatal, traerá algunos modos de pensamiento derivados, como cómo organizar el estado, cómo dividir la lógica pública, la lógica empresarial, la lógica de componentes, etc. , pero en última instancia, estas no son las razones principales.

El núcleo es resolver problemas prácticos - para la comunicación. Otros conceptos y filosofías son innecesarios.

El contexto no es tan fácil de usar y React no tiene mejores prácticas oficiales, por lo que nació una biblioteca comunitaria.

La era de los componentes similares a React es la historia de Redux (y sus bibliotecas derivadas relacionadas) y MobX.

Redux es una implementación que se ajusta al concepto de React. El modo "escucha" de MobX se caracteriza por "no responder lo suficiente", pero es muy sencillo de utilizar.

Se han discutido demasiado las ventajas y desventajas de Redux. En pocas palabras, los desarrolladores se preocupan por el "uso", mientras que Redux se preocupa por la "filosofía".

Bromeé antes diciendo que Redux en realidad se puede expresar en una línea de código, pero usa una especificación en papel para escribir un documento soñoliento:

Y el administrador de estado de React es casi Todos los principios son en realidad muy simples, una implementación del "Patrón de observador":

Al suscribirse al oyente y la actualización de estado en cada componente, se vuelve a llamar al oyente, lo que activa la actualización del componente.

Los componentes de la clase React tienen los siguientes problemas:

Para resolver los problemas anteriores, React introdujo ganchos:

Esta es una innovación en conceptos de desarrollo y organización. conceptos. Los ganchos tienen tres propiedades fuertes: primitividad, descentralización y efectos algebraicos.

Después de la aparición de Hooks, no existe un administrador estatal como Redux en la comunidad que alguna vez dominó el mundo.

Redux ha añadido algunas funciones, como useSelector, useDispatch y useStore, y Facebook también ha abierto algunas bibliotecas, como backlash.

Pero Redux es una antigüedad después de todo, y la sombra dejada por sus primeros días es demasiado grande.

El pensamiento de muchas personas está formateado y confuso, solo para lograr una función simple.

Además, el estilo de escritura de Backlash parece incómodo, prolijo y tibio.

En la era de Hooks, de repente surgió una organización misteriosa que contribuyó a tres bibliotecas de gestión nacional de una sola vez.

Este es PMN dr, Poimandres de PMN dr. pmnd.rs

Cuando se habla de "organización", de hecho, el desarrollador principal debe ser una persona, es decir, el maestro, Kato Daiyo. github.com/dai-shi

Las tres bibliotecas son zustand, jotai y valtio. Curiosamente, las tres palabras en realidad significan "país".

Zustand significa "estado" en alemán, jotai significa "estado" en japonés y valtio significa "estado" en finlandés.

Un breve vistazo al uso:

Como mencioné antes cuando mencioné MobX, la solución de usar un proxy para "monitorear" es simple e intuitiva, aunque no responde lo suficiente. .

Esencialmente, React es una estrategia de "actualización codiciosa", es decir, volver a renderizar y luego diferenciar.

Proxy es una estrategia de "actualización diferida" que sabe exactamente qué variable se está actualizando. Por lo tanto, al utilizar servidores proxy, puede realizar algunas optimizaciones del rendimiento de renderizado.

La introducción de ReactForge en React conf significa que React en sí no excluye alguna optimización basada en la idea de "actualización diferida".

Tenga en cuenta que las "actualizaciones codiciosas" y "actualizaciones diferidas" anteriores son mis propias palabras y se refieren a los conceptos de avaricia y pereza en la regularización.

En general, aunque se trata de un cambio en el pensamiento de gestión nacional, también es un cambio en el pensamiento de desarrollo comunitario de React y es una exploración continua de las mejores prácticas:

Tengo He estado pensando en ¿Qué tipo de administrador de estado de React es el mejor para usar? También estoy explorando constantemente una herramienta con la que me siento más cómodo.

Retalk (mejores prácticas de Redux) y ganchos (gestión estatal) también se han desarrollado antes, pero con el surgimiento de nuevas ideas, la última inspiración ahora se centra en resso, una biblioteca de gestión estatal.

Aquí se explica cómo usar resso:

Tenga en cuenta que es más simple que el muy simple valtio, y no debería ser más simple. Si es así, por favor dímelo.

Más importante aún, resso optimizará automáticamente la renderización y nunca activará una nueva renderización adicional solo porque los datos estén en el mismo objeto.

De hecho, la gestión del estado es algo muy simple, pero herramientas como Redux añaden demasiada complejidad. El propósito original de utilizar una herramienta es resolver un problema, nada más.

Así que, simple y llanamente, dejemos que las herramientas vuelvan a ser herramientas. La forma en que conocemos un martillo es tomándolo y usándolo.

Espero que resso pueda gustar a las personas necesitadas.

¿Pero de qué sirve todo esto?

Cuando sigan llegando cosas nuevas, la gente inevitablemente preguntará: los componentes de clase no están disponibles, Redux no está disponible o, más completamente, jQuery no está disponible. ¿Por qué tienes que perseguir estas cosas nuevas?

Una explicación abstracta: debemos seguir invirtiendo en el futuro.

Esto es cierto no sólo en el desarrollo, sino también en el trabajo y en cualquier campo: "En la nueva pista, en forma de subdivisión continua, la primera identidad se intercambia por recursos".

Las pistas del Viejo Mundo están llenas de transeúntes trabajadores. Aunque el nuevo mundo es un espejismo, sólo el nuevo mundo lo trascenderá todo.