Entonces, hablé de esto antes. En segundo lugar, RSC y GraphQL, son muy complementarios tanto en términos de conceptos, lo que puedes hacer, pero también debido a las formas en que incorporamos convenciones y este camino dorado en Redwood con GraphQL. RSC simplemente tiene sentido en el contexto de Redwood, por lo que, por ejemplo, no necesitamos crear otro enrutador para Redwood, simplemente integraremos RSC directamente en él y encima de él.
Quiero mostrarte, muy rápidamente, este Patrón de Fragmentos de GraphQL. Esto podría tener sentido para ti. Para aquellos que trabajan en Apollo Client en la sala, por favor tapen sus oídos y cierren sus ojos por un segundo. Y luego quiero mostrarte una implementación de Redwood de Componentes del Servidor con Acciones del Servidor, porque creo que es cierto que somos el segundo marco de trabajo para implementar Acciones del Servidor después de Next. Entonces, sí, adelante Redwood. Toby, en realidad, adelante con Toby. Ese chico es increíble. ¿Verdad, Tom? Toby lo está matando.
Bueno, entonces, rápido, hablemos sobre los Fragmentos de GraphQL. Lo sé, ya estás pensando, no vine por GraphQL. Pero esta es una idea realmente interesante a alto nivel. Y para aquellos que usan Next y para aquellos que usan Remix, esto debería parecer realmente similar. Así es como funcionan los Fragmentos. Así es como funciona Relay. Tienes un componente padre, y tienes una consulta raíz dentro de él. Todos los datos que necesitas para todos los componentes en esa página, vas a obtenerlos con ese componente raíz. Así es como funcionan los fragmentos, ¿vale? Entonces, el componente padre, va a obtener los datos, renderizar, y ahora tiene todos los datos que necesita en la página, porque sabe acerca de estas consultas de fragmentos dentro de los componentes hijos, hijo uno e hijo dos. Entonces, ¿qué sucede? Obtiene la consulta raíz, obtiene todos los datos, los pasa. Los fragmentos saben qué campos solicitar, por lo que los datos están allí, y luego en los Fragmentos y en el modelo de GraphQL, toda tu caché, todas tus actualizaciones, simplemente ocurren automáticamente detrás de escena. Apollo Client hace esto muy bien. Hay startups de Redwood que están utilizando este patrón a gran escala, y funciona realmente bien. Altamente eficiente, increíblemente rápido. Y de nuevo, supongamos que actualizas esa consulta raíz con una mutación, por lo que hay una actualización de los datos en tu página, y luego todo, en un bonito flujo detrás de escena, se actualiza y se vuelve a renderizar automáticamente. Eso suena genial, ¿verdad? Puede ser realmente difícil, pero eso suena genial. Entonces, ¿qué pasaría si pudiéramos hacer eso con algo que no fuera GraphQL y tuviera un poco más de sentido dentro del mundo de React? Bueno, échale un vistazo. Esto es, y solo tengo 30 segundos para mostrarte, esta es una aplicación real con la que puedes jugar más tarde. Esta es la acción del servidor de Redwood. Y un par de cosas que quiero señalar antes de ejecutar la demostración. Observa que ya está renderizando un componente del servidor y un componente hijo. Esta es una funcionalidad que está funcionando en Redwood en este momento. Y lo que estás a punto de ver es cómo podemos interactuar con un componente del cliente. Quédate en el componente del cliente y mira lo que sucede. Lo estoy ejecutando ahora. Mira lo que sucede con el componente del servidor, ¿verdad? Entonces, el cuadro rojo, el padre exterior es el componente del servidor. Componente hijo, componente del cliente dentro. Bien, entonces hablaremos de un par de cosas aquí muy rápido. Pero observa, los dos contadores están subiendo por separado. ¿Viste la obtención de datos cuando se incrementó el componente del servidor? ¿Alguien notó lo que acaba de suceder allí cuando la página se volvió a renderizar? Voy a ejecutar esto dos veces. Bueno, la página se vuelve a renderizar. Eso es todo. Y lo voy a ejecutar una vez más. Bueno, un par de cosas suceden aquí. De hecho, Tom habló de esto durante 20 minutos en una masterclass. Te diré cómo llegar a esto y pasar por la presentación completa aquí. Correcto, se está gestionando el estado en el cliente para el componente del cliente. Cuando disparas la acción del servidor, estás viendo una obtención de datos allí, esa es una acción del servidor, se actualiza en el servidor, y eso actualiza el componente del servidor, ¿verdad?, que luego pasa todo lo que necesitas, ¿verdad?, tanto el componente como los datos se pasan desde el servidor.
Comments