Esto podría ser un conteo, o en nuestro caso, puede ser un nodo. No necesariamente conocemos los valores de antemano, por lo que colocamos un nodo de marcador de posición dentro de estos. Así que esencialmente, tenemos este árbol, y los valores dinámicos que se colocan en los nodos están marcados como posiblemente podría haber un valor allí.
Y lo que hacemos ahora es simplemente recorrer el árbol como de costumbre. Verificamos 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 DOM virtual de bloque. Esencialmente, lo que decimos es que cuando el nodo 1 cambia o este data cambia, cambiamos este nodo. Esencialmente, tenemos este mapeo relacional entre los data y la UI. Y podemos hacer esto para cada nodo de marcador de posición en el árbol.
Y durante el runtime, el mapa de edición realmente brilla. Puedes ver aquí cuando estamos intentando actualizar el valor del nodo 1 y el nodo 2 a 3 y 4, respectivamente, puedes ver que solo tenemos que hacer dos diferencias. Así que verificamos si los data son los mismos, 1, 3, sí, ha cambiado. Lo verificamos de nuevo, ha cambiado. Y podemos hacer actualizaciones al DOM virtual. Notarás aquí que el DOM virtual tomaría cinco diferencias, pero con el DOM virtual de bloque, solo toma dos. Y esto se escala infinitamente. Esto es esencialmente una optimization 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 MillionJS. Implementa el DOM virtual de bloque como un reemplazo directo para React. Usándolo, es un 30% más rápido que Preact, que es una alternativa ligera a React, y más del 70% más rápido que React en pruebas de rendimiento sintéticas. Y esto es realmente, realmente indicativo de un mejor performance usando el DOM virtual de bloque, particularmente en pruebas de rendimiento comparadas con alternativas tradicionales del DOM virtual. Así que esencialmente, MillionJS y el V DOM de bloque son más rápidos que React. Y si no me crees, puedes tomar 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.
Comments