Reaccionar
Cree rápidamente bibliotecas de JavaScript para interfaces de usuario interactivas, Facebook se lanzó en 2011
La diferencia entre los dos conceptos de biblioteca y marco
- biblioteca (biblioteca): pequeña e inteligente, solo proporciona una API específica, la ventaja es que "el barco es pequeño y bueno para dar la vuelta", puede cambiar fácilmente de una biblioteca a otra, pero la oportunidad del código no cambiará
- Marco (marco): El marco grande y completo es el marco. El marco proporciona un conjunto completo de soluciones; por lo tanto, si desea cambiar a otro marco en el proyecto, es más difícil.
El estado de los tres marcos
- Angular.js: apareció el marco front-end anterior , la curva de aprendizaje era más pronunciada y NGI era más difícil de aprender. De NG2 a NG5, se llevaron a cabo una serie de reformas y también se proporcionó el concepto de desarrollo de componentes; a partir de NG2, también se admite su uso Desarrollo TS (TypeScript);
- Vue.js: el marco front-end más popular , desarrollado por los chinos, para nosotros, la documentación es relativamente amigable;
- React.js: el marco más popular debido a su excelente diseño;
Reaccionar contra Vue
Componente
- Modularidad: se analiza desde la perspectiva del código ; algunos códigos reutilizables se separan en un solo módulo, lo cual es conveniente para el mantenimiento y desarrollo del proyecto;
- Componentización: análisis desde la perspectiva de la interfaz de UI ; extracción de algunos elementos de UI reutilizables en componentes separados, lo cual es conveniente para el mantenimiento y desarrollo del proyecto;
- Beneficios de la componente: a medida que aumenta la escala del proyecto, hay cada vez más componentes disponibles, lo que facilita unir los componentes existentes en una página completa
- Cómo realizar la componente de Vue: cree los componentes correspondientes a través de archivos .vue
- estructura de plantilla
- comportamiento del guion
- estilo
- Cómo React implementa la componente: hay un concepto de componente en React, pero no hay un archivo de plantilla como Vue, todo en React se implementa en JS;
Equipo de desarrollo
- React es mantenido y actualizado por el equipo de front-end oficial de FaceBook, por lo tanto, el equipo de desarrollo de mantenimiento de React tiene una fuerte fortaleza técnica;
- Vue 1.x es principalmente mantenido especialmente por el autor Youda. Cuando se actualiza a la versión 2.x, también hay un pequeño equipo de código abierto dirigido por Youda para llevar a cabo el desarrollo y mantenimiento relacionados;
Comunidad
- En términos de comunidad, React es relativamente temprano debido a su nacimiento, por lo que la comunidad es relativamente fuerte. Las soluciones óptimas para algunos problemas comunes se pueden encontrar fácilmente en la comunidad.
- La comunidad Vue es más pequeña que React, pero las mejores soluciones a algunos problemas comunes también se pueden encontrar en la comunidad.
Experiencia de desarrollo de aplicaciones móviles
- Vue combinado con Weex proporciona una experiencia de migración al desarrollo de aplicaciones móviles.
- React combinado con ReactNative también proporciona una migración perfecta a la experiencia de desarrollo de aplicaciones móviles.
¿Por qué aprender reaccionar?
- En comparación con Angular, el diseño de React es excelente, todo se entrega a JS y se realiza la idea del desarrollo de componentes.
- El equipo de desarrollo es tan poderoso que no tiene que preocuparse por cambiar la situación.
- La comunidad es fuerte y muchos problemas pueden encontrar las soluciones correspondientes.
- Proporciona una experiencia de desarrollo que pasa sin problemas a ReactNative.
DOM y DOM virtual
-
JUICIO
- El concepto proporcionado en el navegador: utilice objetos JS para representar los elementos en la página y proponga una API para manipular los elementos.
-
DOM virtual
- Es un concepto en el marco : use manualmente objetos JS para simular elementos DOM y relaciones de anidamiento
- Esencial: use objetos JS para simular elementos DOM y relaciones de anidamiento
- Propósito: lograr una actualización eficiente de los elementos de la página
Algoritmo de diferencia
- árbol diff: el árbol DOM nuevo y antiguo, el proceso de comparación capa por capa es Tree Diff; cuando se compara todo el DOM capa por capa, se encontrarán todos los elementos que deben actualizarse a pedido;
- componente diff: cuando se realiza Tree Diff, la comparación de nivel de componente en cada capa se llama Component Diff;
- Si los tipos de componentes antes y después de la comparación son los mismos, nuestro tío cree que este componente no necesita ser actualizado;
- Si los tipos de componentes antes y después de la comparación son diferentes, debe eliminar los componentes antiguos, crear componentes nuevos y agregarlos a la página;
- elemento diff: al comparar componentes, si los dos componentes son del mismo tipo, debe realizar una comparación a nivel de elemento, que se denomina Element Diff;