En lugar de volver a ejecutar todo el componente cada vez que cambia el estado, simplemente va a volver a ejecutar la parte de la página que se preocupa por ese estado. Solo va a volver a renderizar la cantidad cada vez que se actualiza la cantidad. Y no actualizará las imágenes del producto y el texto de envío, yay, pero ni siquiera actualizará el precio. Tienes que ser muy específico sobre qué partes de la página se vuelven a renderizar.
Entonces, en Solid, por ejemplo, si quieres declarar dependencias, como que el precio depende de la cantidad, puedes simplemente crear una función de ejecución. Y, el Compilador de Solid es lo suficientemente inteligente para decir, de acuerdo, esto es una función ahora, voy a rastrear las dependencias dentro de esta función, cantidad, y voy a volver a ejecutar esa función cada vez que una de esas dependencias cambie. Así que ni siquiera un array de dependencias, así que es simplemente inteligente. Ahora que hemos hecho esta función, podemos ver que Solid actualizará el precio. Pero a diferencia del problema de React, no vamos a recargar nada más que no dependa de la cantidad, porque de nuevo, optas por la reactividad con funciones. Así es como funciona todo el marco de trabajo, y es una primitiva realmente agradable. Y, veremos esto en ejemplos modernos como Svelte, y Vue, y Angular, todos ellos están basados en este modelo de donde el estado inicial se va a ejecutar una vez, y luego solo volvemos a ejecutar donde se usa el estado. Así que volvemos a ejecutar el elemento JSX aquí en lugar de volver a ejecutar tu función de arriba a abajo como lo harías en React. Pequeño truco genial, pequeño modelo mental genial.
Y Svelte hace lo mismo. Usando el operador del signo del dólar, y esto está cambiando en futuras versiones, aparentemente a un operador de estado, que volverá a ejecutar el precio cada vez que cambie la cantidad. El mismo tipo de bandera para decir, hey compilador, mira las dependencias, vuelve a renderizar estas cosas cada vez que esas dependencias cambien. Todos ellos funcionan más o menos así, y estamos convergiendo en un modelo de señales para gestionar esto.
Así que, por último, te dejaré con una pequeña demostración, parece que tengo unos dos minutos, pero yo ya sabes, correré esto, a ver hasta dónde podemos llegar. Está en un repositorio llamado simple-rsc. Así que si después de la charla, quieres probar esta herramienta, incluso contribuir con mejoras a ella, definitivamente lo agradezco. Pero es una referencia básica que te muestra cómo funcionan los Componentes de Servidor de React fuera de Next.js. Así que puedes entender el modelo mental de los Componentes de Servidor, lo que realmente hacen. Así que, tengo ese código aquí mismo, vamos a acercarnos un poco para todos ustedes. Y podemos ver que tenemos nuestra raíz del servidor, esta es solo una página que se está renderizando, no te preocupes demasiado por eso. Y simplemente estamos renderizando el texto estático, abramix. Construí esto con Dan Abramov en Stream. Es un clon de Spotify, así que Abramov, Abramix. Pensé que era gracioso, ¿vale? Pensé que era gracioso. Pero sí. Simplemente está renderizando este texto estático aquí.
Comments