Así que esencialmente tenemos este árbol y los valores dinámicos que se colocan en los nodos están marcados como potencialmente, como que potencialmente podría haber un valor allí. Y entonces lo que hacemos ahora es simplemente recorrer el árbol como es habitual. Comprobamos el primero como un marcador de posición, y así sucesivamente, y cuando encontramos un marcador de posición, podemos crear algo llamado un mapa de edición. Esta es la salsa secreta del Block Virtual DOM.
Esencialmente lo que decimos es que cuando el nodo 1 cambia o estos data cambian, cambiamos este nodo. Esencialmente tenemos este mapeo relacional entre los data y la interfaz de usuario. Y podemos hacer esto para cada nodo marcador de posición en el árbol. Y durante el runtime, el mapa de edición realmente, realmente brilla. Puedes ver aquí cuando estamos tratando de actualizar el valor del nodo 1 y el nodo 2 a 3 y 4, respectivamente, puedes ver que sólo tenemos que hacer dos divs. Así que comprobamos si los data son los mismos, 1, 3, sí, ha cambiado. Lo comprobamos de nuevo, ha cambiado. Y podemos hacer actualizaciones al DOM virtual. Te das cuenta aquí de que el DOM virtual tomaría 5 divs, pero con el Block Virtual DOM, sólo toma 2. Y esto escala infinitamente. Esto es esencialmente una optimización O de 1 al DOM virtual.
Y esto es realmente genial, porque tenemos el mismo ejemplo de 200 nodos en la página. Ahora puedes ver que el cambio es O de 1. Cada vez que actualizas, hay un cambio O de 1. Y es realmente, realmente rápido. Así que trabajo en un proyecto llamado MillionGS. Y esto implementa el Block Virtual DOM como un reemplazo directo para React. Usando eso, es un 30% más rápido que Preact, que es una alternativa ligera a React, y más de un 70% más rápido que React en benchmarks sintéticos. Y así esto es realmente, realmente indicativo de un mejor performance usando el Block Virtual DOM, particularmente en benchmarks, en comparación con las alternativas tradicionales del DOM virtual. Así que esencialmente, MillionGS y el Block v DOM son más rápidos que React. Y si no me crees, puedes echar un vistazo a este ejemplo. Tengo una computadora realmente mala, así que ten paciencia. Cuando hago clic en este botón, es realmente, realmente rojo, y eso es indicativo de un mal performance. Pero cuando cambio a Million, cuando se carga, si no me da la bola de playa, puedes ver que cuando hago clic aquí, es mucho mejor. Antes era simplemente un rojo puro. Era un círculo rojo como sangre.
Comments