Abracadabra: La Red Desaparecida

Bookmark
Rate this content

La red que se encuentra entre nuestro servidor y el cliente es lo que causa la mayor complejidad en nuestro proceso de desarrollo. Ya sea la interfaz de usuario inicial que generamos en el servidor, las llamadas API que hacemos mientras el usuario navega, o los envíos de formularios que realiza nuestro usuario, mantener la aplicación receptiva y actualizada es una tarea enorme.

¿Cómo sería si toda esa complejidad simplemente desapareciera? Sería increíble, eso es lo que sería. Y React Server Components y Actions son lo que está haciendo eso posible. En esta charla, exploraremos cómo está sucediendo eso y cómo podemos aprovechar esta increíble experiencia de desarrollador para ofrecer experiencias de usuario aún mejores.

This talk has been presented at React Summit US 2024, check out the latest edition of this React Conference.

Kent C. Dodds
Kent C. Dodds
32 min
19 Nov, 2024

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Estoy muy emocionado de compartir mi experiencia en desarrollo de software. La charla se centra en React y la Red Desaparecida, con el objetivo de hacer que la gestión de la red desaparezca. Comienza con el paradigma de aplicaciones de múltiples páginas y avanza hacia la mejora de la experiencia del usuario y la transición a la arquitectura de aplicaciones de una sola página. La charla discute la eliminación de duplicaciones, la transición a una API JSON y la utilización de React y acciones de usuario. Explora la mejora progresiva con Remix, el paso a React moderno con componentes del servidor y la mejora de la comunicación servidor-cliente y la interfaz de usuario. También cubre la separación del código servidor-cliente, Epic React versión dos, plugins de IA, Next.js, compensaciones, pruebas, consultas SQL y la optimización para el cambio.

1. Introducción a React y la Red Desaparecida

Short description:

Estoy muy emocionado de estar aquí y compartir mi experiencia en desarrollo de software. Tuve una pasantía donde tuve que agregar una casilla de verificación a una aplicación. El código era complejo, pero la interfaz de usuario era fácil. El trabajo fue difícil debido a la gestión de la red. Quiero hacer que la red desaparezca y discutirlo en esta charla. Está basado en una masterclass gratuita llamada React and the Vanishing Network.

Estoy muy emocionado de estar aquí, y tengo mucho que compartir con ustedes, así que estoy encantado de que no tengamos que hacer esto. Acabamos de hacer eso. Así que vamos a entrar directamente en la hora del cuento.

Cuando recién comenzaba en el desarrollo de software, tuve una pasantía en una empresa llamada Domo, y construimos una aplicación que era una aplicación de inteligencia empresarial. Esto era BI antes de que la IA fuera demasiado popular. Y cuiden sus ojos. Esta es la única diapositiva brillante que tengo para ustedes, pero los va a cegar. Y ahora puedo verlos.

Así que esta es la aplicación, y me pidieron como pasante que agregara una casilla de verificación. En realidad no era esta casilla de verificación porque la interfaz de usuario se ve completamente diferente ahora de lo que se veía entonces, pero vamos a imaginar. Me pidieron que agregara esa casilla de verificación. Aquí está el código para eso. Era un modelo y vista de backbone. Vamos a ver esto en detalle. Así que ese es nuestro modelo. Y luego aquí hay un poco de nuestra vista. No, es broma. No vamos a ver eso. Y en realidad tampoco es el código. Eso fue ChatGBT. Pero era material de backbone. Era un modelo de 1,000 líneas, una vista base de 2,000 líneas, y una vista de 1,000 líneas que extendía la vista base. Con eso tuve que trabajar para agregar esta casilla de verificación. Me tomó como cinco minutos agregar la interfaz de usuario para eso.

Pero quiero saber, solo grítenlo porque no puedo ver si levantan las manos. ¿Cuánto tiempo creen que me tomó agregar esta función? ¿Dos sprints? ¿Un día? ¿Dos horas? Cinco meses, OK. Me tomó dos semanas. Y soy como el pasante tratando de demostrarme a mí mismo, y lo hice. Sí, demostré que soy incompetente, supongo. Fue tan triste. ¿Por qué creen que tomó tanto tiempo? Griten esto. Complejidad. OK, así que en general, complejidad. Sí, había mucho código. ¿Qué específicamente hace que este trabajo sea tan complejo? JavaScript. Sí, no estás equivocado. Es la gestión de la red. La carga de los datos y hacer la mutación. Agregar la interfaz de usuario fue súper rápido. Eso no fue difícil. Es solo una plantilla HTML en mi vista de backbone, pero gestionar esa red, hombre, eso fue difícil. Y eso es lo que hizo que tomara dos semanas. Así que quiero hacer que la red desaparezca por completo, desaparezca completamente. Y por eso vamos a ver qué está pasando con nuestro código de red en nuestras aplicaciones.

El resto de mi charla está basada en una masterclass que es completamente gratuita. Puedes pasar por todo esto tú mismo. Y eso es lo que vamos a repasar aquí. Es el React and the Vanishing Network. Puedes revisar esto más tarde. Vamos a avanzar bastante rápido a través de esto.

2. Explorando el Paradigma de Aplicaciones Multi-Página

Short description:

Así que estamos comenzando con el paradigma de aplicaciones multi-página. Generamos HTML, obtenemos un conteo de la base de datos y lo renderizamos. Creamos un formulario para actualizar el conteo, manejamos la ruta, convertimos los datos del formulario, actualizamos el conteo y redirigimos. Hay un código de red mínimo, pero avanzamos para una mejor experiencia de usuario. Hacer clic en el botón provoca una actualización completa de la página, dificultando los incrementos rápidos para los usuarios de teclado.

Así que lo revisé antes, y deberías poder ver eso. Si no, lo siento mucho. Hice lo mejor que pude. Pero sí, vamos a comenzar con el paradigma de aplicaciones multi-página donde todos comenzamos. Así que tenemos esta aplicación simple sirviendo desde la barra.

Vamos a generar algo de HTML. Así que obtengamos un conteo de nuestra base de datos. Vamos a renderizar ese conteo aquí. Y aquí, guardemos eso y aseguremos que estamos en un buen lugar. Boom. Conteo cero. Magia. La web todavía funciona. Siempre apuesta por la web.

Ahora vamos a hacer un formulario para que podamos actualizar esto. Y así estamos publicando para actualizar el conteo. Y luego tenemos estos botones que pueden tener un nombre y un valor. ¿Sabías eso? Eso es algo genial. Así que cualquiera que hagamos clic es lo que se enviará al back end. Así que eso es genial. Ahora, si intento hacer clic en uno de esos, no va a funcionar porque estamos yendo a esa ruta y no estamos manejando esa ruta. Así que manejemos esa ruta ahora. Vamos a manejar un post para actualizar el conteo. Tenemos nuestros datos del formulario. Vamos a convertir eso en un número porque eso pasa como una cadena. Vamos a actualizar el conteo, cambiarlo, comprar ese cambio, y luego redirigir porque estamos haciendo post redirect get. Si no sabes lo que eso significa, entonces pregunta a tus mayores. Y vamos a decrementar e incrementar. Ahí estamos. Genial. Funciona. OK, así que echemos un vistazo al código de red. ¿Dónde está el código de red aquí? Bueno, en realidad no hay mucho. Pero hay algo. Algo de código relacionado con la red. Tenemos esta barra aquí. Esa es la URL. Está muy relacionada con la red. Nuestra acción se está definiendo aquí. Así que eso es un poco de código de red también. Incluso nuestro método está relacionado con la red. Y luego, por supuesto, manejar eso y hacer la redirección. Todo eso está algo relacionado con la red. O bastante cerca. Pero realmente no hay mucho código de red aquí. Y esta es la razón por la que muchas personas que construyeron aplicaciones usando la arquitectura de aplicaciones multi-página realmente lamentan la forma en que hacemos las cosas ahora porque realmente es así de simple. Pero hay una razón por la que avanzamos desde esto. Y la razón es la experiencia del usuario. Así que queremos tener una experiencia de usuario mucho mejor porque ahora mismo lo que estamos obteniendo es una actualización completa de la página cada vez que hacemos clic en esto. Y así, si quisiera incrementar muy rápidamente y fuera un usuario de teclado, voy a tocar, tocar, incrementar, tocar, tocar, incrementar, tocar, tocar, incrementar.

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

Simplificando los Componentes del Servidor
React Advanced 2023React Advanced 2023
27 min
Simplificando los Componentes del Servidor
Top Content
React server components simplify server-side rendering and provide a mental model of components as pure functions. Using React as a library for server components allows for building a basic RSC server and connecting it to an SSR server. RSC responses are serialized virtual DOM that offload code from the client and handle interactivity. The client manifest maps serialized placeholders to real components on the client, enabling dynamic rendering. Server components combine the best of classic web development and progressive enhancement, offering the advantage of moving logic from the client to the server.
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 2023React Advanced 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.
RSCs en Producción: 1 Año Después
React Summit 2024React Summit 2024
24 min
RSCs en Producción: 1 Año Después
This Talk explores the experience of shipping server components in production and highlights the benefits and challenges of using Server Components in Next.js apps. The Talk discusses the deployment of UploadThing and the use of AppRouter for safe production usage. It delves into the implementation of different layouts, data fetching, and code centralization for improved performance. The Talk also covers the use of server components for performance optimization and latency handling. Additionally, it explores the use of Edge and Lambda for partial pre-rendering and the challenges faced with webpack performance and hydration. Overall, the Talk emphasizes the benefits and challenges of working with Server Components in Next.js applications.

Workshops on related topic

Dominando React Server Components y Server Actions en React 19
React Summit US 2024React Summit US 2024
150 min
Dominando React Server Components y Server Actions en React 19
Featured Workshop
Maurice de Beijer
Maurice de Beijer
¡Llamando a todos los desarrolladores de React! Únete a nosotros para una masterclass inmersiva de 4 horas profundizando en React Server Components y Server Actions. Descubre cómo estas tecnologías revolucionarias están transformando el desarrollo web y aprende a aprovechar todo su potencial para construir aplicaciones rápidas y eficientes.

Explora el mundo de React Server Components, combinando sin problemas el renderizado del lado del servidor con la interactividad del lado del cliente para un rendimiento y experiencia de usuario incomparables. Sumérgete en React Server Actions para ver cómo combinan la interactividad del lado del cliente con la lógica del lado del servidor, facilitando el desarrollo de aplicaciones interactivas sin las limitaciones tradicionales de las API.

Obtén experiencia práctica con ejercicios prácticos, ejemplos del mundo real y orientación experta sobre la implementación de estas tecnologías en tus proyectos. Aprende temas esenciales como las diferencias entre Server y Client Components, optimización de la obtención de datos, pasando datos de manera efectiva y maximizando el rendimiento con nuevos hooks de React como useActionState, useFormStatus y useOptimistic.

Ya sea que seas nuevo en React o un profesional experimentado, esta masterclass te equipará con el conocimiento y las herramientas para elevar tus habilidades de desarrollo web. Mantente a la vanguardia y domina la tecnología de vanguardia de React 19. No te lo pierdas: ¡regístrate ahora y desata todo el poder de React!
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
Workshop
 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