Entonces, lo que quiero hablar hoy es sobre la velocidad, y específicamente sobre los Core Web Vitals y cómo lograr que sean lo más altos posible. Resulta que la respuesta es relativamente simple pero difícil de hacer, enviar menos JavaScript. A Google le importa mucho, y como resultado, crearon estas métricas de Core Web Vitals que rastrean y evalúan.
Pero resulta que a medida que nuestros sitios web se vuelven más populares y complicados, la cantidad de JavaScript que enviamos al cliente está aumentando lentamente a lo largo de los años, como puedes ver aquí. A medida que aumenta la cantidad de JavaScript, se vuelve más difícil pasar los Core Web Vitals. La mayoría de los sitios web tienen dificultades para pasar los Core Web Vitals, incluso Amazon, que se preocupa mucho por el rendimiento y es uno de los sitios web con mejor rendimiento. Y realmente se reduce a la cantidad de JavaScript que se envía al cliente.
Comencemos con un ejemplo muy simple. Construyamos un ejemplo de contador. Bueno, el contador probablemente se vería así. Tenemos un botón al que le das clic y se incrementa el contador. Esta es la aplicación más simple que se puede pensar. Pero no creo que sea realmente representativa de una aplicación del mundo real, porque en esta aplicación en particular tenemos nuestra mutación, que es el escucha, nuestro estado, que es el contador actual, y la representación, que es la vinculación del valor, todo dentro de un solo componente. En realidad, por lo general, la mutación, el estado y la representación se separan en componentes separados.
Veamos eso como un ejemplo más realista. O descompongamos esto. Un ejemplo de esto se vería así, donde tienes el componente del contador que está en la raíz y contiene dos componentes más pequeños, la acción y la visualización, donde el contador contiene el estado y la acción tiene el escucha, y la visualización muestra solo el contador actual. Incluso eso no es realmente muy realista, porque típicamente tenemos cosas adicionales como AppRoot, tenemos envoltorios adicionales que se utilizan para el diseño de los componentes, y así sucesivamente. Todas estas cosas adicionales hacen que sea más realista para lo que es la aplicación real. Esto es lo que se vería.
Como puedes ver, todavía tenemos un contador, pero ahora nuestra acción está envuelta en un componente adicional, al igual que nuestra visualización. La razón por la que muestro esto es porque necesitas pasar datos a través de estos envoltorios adicionales, y esto afectará la forma en que se ejecuta la aplicación. Por último, introduzcamos un elemento de acción y un ícono de visualización. La idea detrás de estas cosas es que son básicamente saltos. Son componentes que no hacen nada, pero muchas veces los tenemos en nuestra aplicación. Un ejemplo más realista de cómo se ve realmente una aplicación es una mezcla de estos componentes de la aplicación, el contador, diferentes tipos de envoltorios, finalmente un lugar donde realmente realizamos algunas acciones y un lugar donde actualizamos la interfaz de usuario. Puedes pensar en la realización de la acción como el botón de compra en una página, y puedes ver el contador como la visualización del carrito de compras actual en la interfaz de usuario. Entonces, lo que tenemos es una situación en la que la mutación y la visualización están realmente separadas entre sí, y tienen que compartir un componente raíz común, el denominador común mínimo que abarca ambos, que contiene el estado, y luego el estado se pasa a ambos lugares. Ahora, pensarías que para una aplicación tan simple, el único código que tendrías que descargar al cliente es realmente solo la acción de mutación, tal vez el estado y tal vez la visualización.
Comments