Simplificando los Componentes del Servidor

Spanish audio is available in the player settings
Rate this content
Bookmark

Los Componentes del Servidor son posiblemente el cambio más grande en React desde su lanzamiento inicial, pero muchos de nosotros en la comunidad hemos tenido dificultades para entenderlos. En esta charla intentaremos desglosar las diferentes partes móviles para que tengas una buena comprensión de lo que está sucediendo bajo el capó, y exploraremos la línea entre React y los marcos que se construyen sobre él.

This talk has been presented at React Advanced Conference 2023, check out the latest edition of this React Conference.

FAQ

Le tomó a Mark Dalglish 21 horas de vuelo llegar desde Melbourne, Australia hasta Londres.

Mark Dalglish empezó a trabajar con React debido a sus capacidades de renderización del lado del servidor, lo que le pareció fundamentalmente diferente a todo lo que había usado antes.

Según Mark Dalglish, JSX son llamadas a funciones, una forma de describir los elementos que se quieren renderizar en la pantalla mediante el uso de sintaxis de JavaScript.

El servidor RSC tiene como única función renderizar componentes de servidor y pasarlos al servidor SSR o al cliente para actualizaciones en vivo. Utiliza una corriente de nodos para obtener una corriente RSC que luego se envía al consumidor.

Los componentes del servidor permiten enviar DOM virtual serializado a través de la red, lo que permite una interactividad dinámica sin requerir que el código se ejecute nuevamente en el cliente, optimizando así la carga y ejecución en los dispositivos del usuario.

Trabajar con componentes de servidor en marcos como Next.js implica aprender sobre el uso de componentes de servidor y las opiniones adicionales que los marcos de trabajo proporcionan, lo que puede complicar la implementación directa en React.

Mark Dalgleish
Mark Dalgleish
27 min
20 Oct, 2023

Comments

Sign in or register to post your comment.

Video Summary and Transcription

Los componentes del servidor de React simplifican la renderización del lado del servidor y proporcionan un modelo mental de componentes como funciones puras. Usar React como una biblioteca para componentes de servidor permite construir un servidor RSC básico y conectarlo a un servidor SSR. Las respuestas RSC son DOM virtual serializado que descarga el código del cliente y maneja la interactividad. El manifiesto del cliente mapea los marcadores de posición serializados a componentes reales en el cliente, permitiendo la renderización dinámica. Los componentes del servidor combinan lo mejor del desarrollo web clásico y la mejora progresiva, ofreciendo la ventaja de mover la lógica del cliente al servidor.
Available in English: Simplifying Server Components

1. Introducción a los Componentes de Servidor de React

Short description:

Mi nombre es Mark Dalglish, y estoy aquí desde Melbourne, Australia. He estado trabajando en el espacio de React durante una década, con un enfoque en la renderización del lado del servidor y la mejora progresiva. Actualmente, estoy trabajando en el equipo de Remix en Shopify. Los componentes de servidor de React han despertado mi interés, pero inicialmente parecían intimidantes. Sin embargo, siempre he tenido un modelo mental simple de cómo funciona React, con componentes siendo funciones puras que describen lo que debería estar en la pantalla. JSX son solo llamadas a funciones. Al principio, era extraño devolver elementos HTML desde funciones de JavaScript.

Entonces, como escucharon, mi nombre es Mark Dalglish, y estoy aquí desde Melbourne, Australia, lo que significa que me tomó 21 horas de vuelo llegar aquí. Así que, muchas gracias por recibirme. Es un placer estar aquí en Londres. Ahora, he estado trabajando en el espacio de React, ¿puedes creerlo?, durante una década en este punto. Solo me di cuenta cuando estaba preparándome para esta charla. Ahora, algunos de ustedes, como escucharon, pueden estar familiarizados con mi trabajo en React en términos de espacio de design system, CSS modules, vanilla, Extract, design systems, pero volviendo a por qué empecé en React en primer lugar, fueron realmente sus capacidades de renderización del lado del servidor las que me convencieron de que React era fundamentalmente diferente a todo lo que había usado antes, no solo en el espacio de JavaScript, sino en el desarrollo web en general. Y para mí, la parte realmente emocionante fue que finalmente pude cerrar la brecha entre lo que estábamos tratando de hacer con la rica interactividad del lado del cliente en JavaScript, mientras también manteníamos la mejora progresiva que hasta ese punto, hasta el impulso por JavaScript en el cliente, la mejora progresiva había sido durante mucho tiempo un valor en el espacio web, y ahora React me permitió obtener lo mejor de ambos mundos y resolver algunos problemas muy reales que tenía en el trabajo en ese momento, tratando de tener una rica interactividad del lado del cliente, mientras también tenía esa primera carga de página performance, así como importante, soporte SEO para Google para nosotros en ese momento. Así que ese trabajo, ese antecedente para mí en la renderización del lado del servidor es lo que finalmente me llevó a mi trabajo a tiempo completo actual en el equipo de Remix en Shopify, trabajando muy duro para hacer realidad esa experiencia de mejora progresiva para todos ustedes. Así que es con, es en ese contexto que estoy seguro de que no es ninguna sorpresa para ustedes que estoy muy interesado en los React server components, porque es un gran cambio en términos de cómo pensamos sobre React. Pero tengo que admitir que cuando miré por primera vez los componentes del servidor los encontré bastante intimidantes. No desde una perspectiva de API de alto nivel, sino más bien desde el sentido de que tenía menos idea de cómo se supone que debo pensar en la architecture de mi aplicación, ¿cuáles son las implicaciones en cómo pienso y construyo mis aplicaciones, ¿cómo funciona incluso, y especialmente si estoy en un contexto de marco, qué significa construir un marco sobre los componentes del servidor? Hay muchas preguntas abiertas, y personas que respetaba que sabían mucho sobre React también estaban luchando con esta pregunta. Para mí, esto estaba en marcado contraste con mi experiencia con React hasta ese punto, porque encontré que, en general, siempre pude tener un modelo mental muy simple de cómo funcionaba React. Por ejemplo, si tenía mi componente de aplicación con el que todos estamos acostumbrados a trabajar, podría renderizarlo en un elemento en la pantalla, pero igualmente, podría tomar ese mismo componente de aplicación, y podría renderizarlo en una cadena de HTML en el servidor. Esto es lo que me interesó en React en primer lugar. Y para mí, este modelo mental era agradable y simple. Cuando se trataba de renderizar un componente, por supuesto, al principio, la pregunta natural sería qué es un componente, dado que cada marco tiene una visión diferente de lo que ese tipo de concepto podría significar. Y lo que fue interesante en React es que la respuesta era agradable y simple, es que conceptualmente los componentes son básicamente funciones puras que simplemente describen lo que debería estar en la pantalla en ese momento dado. Entonces, en los primeros días de React, no teníamos componentes funcionales. Teníamos React.create class, y tendría un método de renderizado, entre otras propiedades en ese objeto. Y dentro de ese método, tendríamos acceso a this.props en la instancia del componente. Así que es una API muy diferente. Pero si te fijas, se sentía como trabajar con una función pura. Y así es como lo describí a las personas que eran nuevas en React. Y curiosamente, eso terminó siendo la API con la que tratamos hoy. Ahora literalmente son funciones. Y, por supuesto, nuestros componentes van a estar renderizando JSX y la pregunta entonces sería ¿qué es JSX? Para muchos de nosotros, especialmente en esos primeros días, fue una pregunta muy interesante con la que tuvimos que lidiar, pero la respuesta fue bastante simple. Es que JSX son solo llamadas a funciones. Esa es simplemente la forma en que tenías que pensar en ello. Entonces, cuando vimos código como este que, de nuevo, en los primeros días de React, para muchos de nosotros, era casi herético que estuviéramos devolviendo elementos HTML desde nuestras funciones de JavaScript.

2. Entendiendo los Componentes de Servidor

Short description:

Cuando se nos explicó que JSX son solo llamadas a funciones, se volvió sencillo. Sin embargo, la respuesta simple de que los componentes de servidor son componentes que solo se ejecutan en el servidor no es suficiente. Quiero simplificar los componentes de servidor y proporcionar un buen modelo mental de cómo funcionan más allá de las API de alto nivel.

Casi no tenía sentido para nosotros. Pero cuando se nos explicó que realmente es solo una azúcar sintáctica para escribir código como este donde simplemente estás llamando a una función, pasando algunos argumentos para describir qué elemento quieres, el tipo de elemento, las propiedades, los hijos, fue bastante sencillo. Así que ahora eso nos lleva a la última pregunta en React, que es ¿qué son los componentes de servidor? Parece una pregunta bastante sencilla. Y la respuesta simple a la que la gente tiende a llegar, he encontrado, es algo en la línea de esto donde dices que los componentes de servidor son componentes que solo se ejecutan en el servidor. Ahora, el problema que tengo con esto como respuesta, más allá del hecho de que básicamente es solo reorganizar las palabras de la pregunta, es que no me deja con un modelo mental de cómo funcionan, cuáles son las restricciones o compensaciones, qué significa eso para mi architecture, qué puedo hacer, qué no puedo hacer con ellos, cómo los uso a nivel de API desde React? Así que tenía muy poco para trabajar aquí. Así que el objetivo aquí para mi charla es ayudar a hacerles a ustedes lo que tuve que trabajar para lograr, que es simplificar los componentes de servidor. Esperemos que no los simplifique demasiado, pero los simplifique lo suficiente para que tengan un buen modelo mental de cómo funcionan más allá de las API de alto nivel

QnA

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Explorando los fundamentos de los Componentes del Servidor React
React Day Berlin 2023React Day Berlin 2023
21 min
Explorando los fundamentos de los Componentes del Servidor React
Top Content
This Talk introduces React Server Components (RSC) and explores their serialization process. It compares RSC to traditional server-side rendering (SSR) and explains how RSC handles promises and integrates client components. The Talk also discusses the RSC manifest and deserialization process. The speaker then introduces the Waku framework, which supports bundling, server, routing, and SSR. The future plans for Waku include integration with client state management libraries.
Y Ahora Entiendes los Componentes del Servidor React
React Summit 2024React Summit 2024
27 min
Y Ahora Entiendes los Componentes del Servidor React
Top Content
In this Talk, Kent C. Dodds introduces React Server Components (RSCs) and demonstrates how to build them from scratch. He explains the process of integrating RSCs with the UI, switching to RSC and streaming for improved performance, and the benefits of using RSCs with async components. Dodds also discusses enhancements with streaming and server context, client support and loaders, server component rendering and module resolution, handling UI updates and rendering, handling back buttons and caching, and concludes with further resources for diving deeper into the topic.
Una Guía Práctica para Migrar a Componentes de Servidor
React Advanced Conference 2023React Advanced Conference 2023
28 min
Una Guía Práctica para Migrar a Componentes de Servidor
Top Content
React query version five is live and we'll be discussing the migration process to server components using Next.js and React Query. The process involves planning, preparing, and setting up server components, migrating pages, adding layouts, and moving components to the server. We'll also explore the benefits of server components such as reducing JavaScript shipping, enabling powerful caching, and leveraging the features of the app router. Additionally, we'll cover topics like handling authentication, rendering in server components, and the impact on server load and costs.
Componentes del Servidor: La Épica Historia de Renderizar UX
React Summit 2023React Summit 2023
26 min
Componentes del Servidor: La Épica Historia de Renderizar UX
Top Content
This Talk introduces server components in React, which provide an intermediate format for rendering and offer advantages for both client-side and server-side rendering. Server components reduce bundle size on the client and improve search engine optimization. They abstract the rendering process, allowing for faster rendering and flexibility in choosing where to render components. While server components are still in the experimental stage, Next.js is a good starting point to try them out.
Baterías Incluidas Reimaginadas - El Resurgimiento de GraphQL Yoga
GraphQL Galaxy 2021GraphQL Galaxy 2021
33 min
Baterías Incluidas Reimaginadas - El Resurgimiento de GraphQL Yoga
Envelope is a powerful GraphQL plugin system that simplifies server development and allows for powerful plugin integration. It provides conformity for large corporations with multiple GraphQL servers and can be used with various frameworks. Envelope acts as the Babel of GraphQL, allowing the use of non-spec features. The Guild offers GraphQL Hive, a service similar to Apollo Studio, and encourages collaboration with other frameworks and languages.
Componentes de Servidor React
React Day Berlin 2023React Day Berlin 2023
27 min
Componentes de Servidor React
React server components solve the problem of interrupting user interfaces caused by CPU-bound or network-bound web applications. They allow for read-only content to be rendered on the server and interactive elements to be shipped to the client, reducing code shipped and improving performance. Server-side rendering and server-side fetching improve the user experience by reducing delays and flash of unstyled content. Soft navigation with server components enables re-rendering without hard navigation, and using frameworks like Next.js helps with debugging and deployment challenges.

Workshops on related topic

Next.js 13: Estrategias de Obtención de Datos
React Day Berlin 2022React Day Berlin 2022
53 min
Next.js 13: Estrategias de Obtención de Datos
Top Content
WorkshopFree
Alice De Mauro
Alice De Mauro
- Introducción- Prerrequisitos para la masterclass- Estrategias de obtención: fundamentos- Estrategias de obtención – práctica: API de obtención, caché (estática VS dinámica), revalidar, suspense (obtención de datos en paralelo)- Prueba tu construcción y sírvela en Vercel- Futuro: Componentes de servidor VS Componentes de cliente- Huevo de pascua de la masterclass (no relacionado con el tema, destacando la accesibilidad)- Conclusión
La Puerta al Backend: Guía del Desarrollador Frontend para el Desarrollo Full-Stack
React Summit US 2023React Summit US 2023
160 min
La Puerta al Backend: Guía del Desarrollador Frontend para el Desarrollo Full-Stack
Top Content
WorkshopFree
Amy Dutton
Amy Dutton
Esta masterclass te guiará a través del ciclo de vida del desarrollo de productos para crear una aplicación web del mundo real. Aprenderás sobre los Componentes del Servidor React, construyendo un sistema de diseño dentro de Storybook, y utilizando el desarrollo frontend para acercarte a convertirte en un desarrollador full-stack. La masterclass cubrirá el aumento de la confianza en tu aplicación con pruebas unitarias e implementando autenticación y autorización. Tendrás la oportunidad de trabajar a través de las características del producto y examinar un proyecto real de RedwoodJS, obteniendo valiosa experiencia en el desarrollo de productos del mundo real. RedwoodJS hace que sea simple acercarse al desarrollo full-stack, y esta masterclass te dará las habilidades que necesitas para crear tus propias aplicaciones web del mundo real.
Patrones Avanzados de Despliegue de Aplicaciones con Componentes de Servidor React (feat. un Marco RSC DIY)
React Summit US 2023React Summit US 2023
104 min
Patrones Avanzados de Despliegue de Aplicaciones con Componentes de Servidor React (feat. un Marco RSC DIY)
Top Content
WorkshopFree
 Greg Brimble
Greg Brimble
El ecosistema de desarrolladores siempre está avanzando rápidamente y este año no ha sido una excepción. Los Componentes de Servidor React pueden ofrecer una mejora significativa a la experiencia del desarrollador y al rendimiento de la aplicación. Pero creo que es justo decir que este nuevo paradigma de servidor primero puede ser complicado de entender!En la primera mitad de esta masterclass, exploraremos los Componentes de Servidor React desde cero: construyendo nuestro propio mini marco meta para ayudarnos a entender cómo funcionan los RSCs. Descubriremos exactamente qué se produce en una construcción RSC y conectaremos esas piezas para formar una aplicación completa.A continuación, ¡lo desplegaremos! Cloudflare también ha tenido un año ocupado — Smart Placement, en particular, es una nueva tecnología que hemos desarrollado que se ajusta perfectamente al modelo RSC. Exploraremos por qué eso tiene sentido para nuestra aplicación de masterclass, y realmente lo desplegaremos en la Plataforma de Desarrolladores de Cloudflare.Finalmente, ampliaremos un poco más nuestra aplicación, utilizando D1 (nuestra base de datos SQL sin servidor) para mostrar realmente el poder del Componente de Servidor React cuando se combina con Smart Placement.Deberías salir de esta masterclass con una mayor comprensión de cómo funcionan los Componentes de Servidor React (tanto detrás de las escenas como también cómo tú como desarrollador puedes usarlos día a día), así como una visión de algunos de los nuevos patrones de despliegue que ahora son posibles después de las recientes innovaciones en el espacio de la plataforma.
Construyendo Componentes de Servidor Reutilizables en NextJS
React Summit US 2023React Summit US 2023
88 min
Construyendo Componentes de Servidor Reutilizables en NextJS
Workshop
Will Bishop
Mettin Parzinski
2 authors
React continúa evolucionando su capacidad beta, los Componentes de Servidor de React, y continúan desarrollándolos en asociación con marcos como NextJS.En esta masterclass, los asistentes aprenderán qué son los Componentes de Servidor de React, cómo construirlos y usarlos eficazmente en NextJS, y se centrarán en una de las principales ventajas de React/NextJS: la reutilización a través de componentes.También cubriremos tecnologías beta relacionadas habilitadas por el directorio `app`, como los layouts anidados y las acciones del servidor (capacidad alfa/experimental).¡Únete a nosotros para esta masterclass práctica de 120 minutos!Tecnologías:
React, JavaScript/Typescript, NextJS, Miro
Desatando los Componentes del Servidor React: Una Inmersión Profunda en el Desarrollo Web de la Próxima Generación
React Day Berlin 2023React Day Berlin 2023
149 min
Desatando los Componentes del Servidor React: Una Inmersión Profunda en el Desarrollo Web de la Próxima Generación
Workshop
Maurice de Beijer
Maurice de Beijer
¡Prepárate para potenciar tus habilidades de desarrollo web con los Componentes del Servidor React! En esta inmersiva masterclass de 3 horas, desbloquearemos el potencial completo de esta tecnología revolucionaria y exploraremos cómo está transformando la forma en que los desarrolladores construyen aplicaciones web rápidas y eficientes.
Únete a nosotros mientras nos adentramos en el emocionante mundo de los Componentes del Servidor React, que combinan sin problemas el renderizado del lado del servidor con la interactividad del lado del cliente para un rendimiento y una experiencia de usuario inigualables. Obtendrás experiencia práctica a través de ejercicios prácticos, ejemplos del mundo real y orientación experta sobre cómo aprovechar el poder de los Componentes del Servidor en tus propios proyectos.
A lo largo de la masterclass, cubriremos temas esenciales, incluyendo:- Entender las diferencias entre los Componentes del Servidor y del Cliente- Implementar Componentes del Servidor para optimizar la obtención de datos y reducir el tamaño del paquete JavaScript- Integrar Componentes del Servidor y del Cliente para una experiencia de usuario fluida- Estrategias para pasar datos efectivamente entre componentes y gestionar el estado- Consejos y mejores prácticas para maximizar los beneficios de rendimiento de los Componentes del Servidor React
Construye una Tienda Personalizada en Shopify con Hydrogen
React Advanced Conference 2021React Advanced Conference 2021
170 min
Construye una Tienda Personalizada en Shopify con Hydrogen
Workshop
Matt Seccafien
Cathryn Griffiths
2 authors
Hydrogen es un marco de trabajo y SDK React con opiniones para construir tiendas personalizadas rápidas, alimentadas por Shopify. Hydrogen adopta los Componentes del Servidor React y utiliza Vite y Tailwind CSS. En este masterclass, los participantes tendrán una primera vista de Hydrogen, aprenderán cómo y cuándo usarlo, todo mientras construyen una tienda personalizada completamente funcional con el equipo de Hydrogen.