Red de conocimientos turísticos - Conocimientos sobre calendario chino - Revisando Vue2 y esperando con ansias Vue3

Revisando Vue2 y esperando con ansias Vue3

Object.defineProperty() puede escuchar una matriz, donde clave es el código angular y valor es el valor del elemento.

Sin embargo, al insertar, eliminar u ordenar la matriz, la posición de los elementos de datos se moverá, lo que resultará en llamadas frecuentes al getter y setter de cada elemento, ¡lo que afecta seriamente el rendimiento! ¡Por lo tanto, Vue2 abandonó el uso de matrices de escucha!

¡El verdadero problema con Object.defineProperty() es que no puedes escuchar las claves que no están configuradas en la inicialización!

Es por eso que Vue2 tiene que reescribir el método de matriz y proporcionar API como Vue.set

Además, Object.defineProperty() debe monitorearse mediante recorrido recursivo y bucles desde El principio La inicialización también es uno de los cuellos de botella del rendimiento.

Es precisamente debido a estos problemas heredados que Vue3

Object.defineProperty() reescribe las claves del objeto y el proxy solo intercepta operaciones de lectura y escritura.

Vue3 utiliza un proxy diferido para resolver el problema del anidamiento profundo, ¡simplemente itere las propiedades de la primera capa!

Las operaciones de inserción, eliminación y clasificación en la matriz seguirán activando el captador/configurador de proxy varias veces, entonces, ¿qué optimizaciones ha realizado Vue3?

er>