React Performance with Server Components

This ad is not shown to multipass and full ticket holders
React Summit US
React Summit US 2025
November 18 - 21, 2025
New York, US & Online
The biggest React conference in the US
Learn More
In partnership with Focus Reactive
Upcoming event
React Summit US 2025
React Summit US 2025
November 18 - 21, 2025. New York, US & Online
Learn more
Bookmark
Rate this content

React Server Components ofrecen un método efectivo para mejorar el rendimiento de las aplicaciones web al renderizar componentes en el servidor y transmitirlos al cliente en tiempo real. Esta sesión cubrirá la funcionalidad y los beneficios de React Server Components, mostrando cómo pueden aumentar la velocidad y la capacidad de respuesta de la aplicación.

Examinaremos el papel de los componentes asíncronos, la gestión eficiente de datos y el uso estratégico de las características modernas de React para optimizar los tiempos de carga y la interactividad. Con ejemplos del mundo real y consejos prácticos, aprenderás cómo integrar estos componentes para mejorar el rendimiento de tu aplicación web y proporcionar una mejor experiencia de usuario.

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

Aurora Scharff
Aurora Scharff
20 min
22 Nov, 2024

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Mi nombre es Aurora, soy desarrolladora web de Noruega. Hoy, te enseñaré cómo elevar la velocidad, interactividad y experiencia del usuario con componentes de React. Estaré codificando un gestor de tareas de proyecto y mejorándolo usando Next.js, Prisma, Azure SQL y Tailwind CSS. Revisaremos el código, comenzando con el importante componente de diseño. También aprenderemos cómo mejorar la navegación y la obtención de datos, mejorar la estabilidad visual y la experiencia del usuario, corregir la funcionalidad de búsqueda y agregar filtros de categoría con estados de carga. Además, exploraremos el uso de React 19 hooks para mejorar la interactividad. Finalmente, optimizaremos el renderizado y lograremos mejores puntuaciones en Lighthouse para un mejor rendimiento. En general, esta charla cubre una variedad de técnicas y herramientas para mejorar los proyectos de React y ofrecer una mejor experiencia de usuario.

1. Introducción a los componentes de React y configuración del proyecto

Short description:

Mi nombre es Aurora, soy desarrolladora web de Noruega. Hoy, te enseñaré cómo elevar la velocidad, la interactividad y la experiencia del usuario con componentes de React. Estaré codificando un gestor de tareas de proyecto usando Next.js, Prisma, Azure SQL y Tailwind CSS. La aplicación tiene una carga inicial lenta, pero funciona sin JavaScript. Las puntuaciones de Lighthouse muestran tiempos de carga lentos, pero buena estabilidad de diseño. Revisemos el código, comenzando con el componente de diseño importante.

Hola a todos. Mi nombre es Aurora. Soy desarrolladora web de Noruega y trabajo como consultora en Enmeta en Oslo. Y estoy emocionada de hablar hoy de forma remota en React Summit US, porque estaré enseñando cómo elevar la velocidad, la interactividad y la experiencia del usuario con componentes de React.

Y voy a estar codificando algo inspirado en una característica que he construido para mi proyecto de consultoría actual donde estoy usando activamente componentes de React. Así que esto es una especie de gestor de tareas de proyecto. Y la configuración aquí es el enrutador de la aplicación Next.js. Y luego estoy usando Prisma como mi ORM y una base de datos Azure SQL, y Tailwind para CSS.

Y lo que notarás con esta aplicación es que tiene una carga inicial muy lenta aquí. Y eso es porque he ralentizado las búsquedas de datos a propósito. Pero una vez que la aplicación está cargada, en realidad no está tan mal. Puedo navegar entre estas pestañas muy lentamente, y puedo buscar aquí usando un formulario simple, usando una solicitud get para enviar parámetros al enrutador. Y estos son todos componentes del servidor, lo que significa que no se envía JavaScript al cliente para estos componentes. Y es solo HTML y enlaces y un formulario. Y las cosas funcionan en realidad sin JavaScript. Este es un buen caso base porque funcionará incluso si estamos en un dispositivo con un bajo poder de procesamiento que no puede ejecutar JS efectivamente.

También voy a revisar las puntuaciones de Lighthouse para esta aplicación. Así que como verás, correspondiente a esta baja carga inicial, tengo un primer renderizado con contenido grande, y un índice de velocidad que están en 3.5 segundos, lo cual no es muy bueno. Y puedes ver el impacto de estos aquí. Y eso es porque, como puedes ver en la tira de película aquí, estoy cargando. Estoy esperando que todos los componentes del servidor se rendericen en el servidor antes de mostrar cualquier cosa. Sin embargo, debido a eso, también tengo un cambio de diseño acumulativo de cero. Así que eso es realmente bueno porque no hay inestabilidad visual aquí. Y un tiempo total de bloqueo de cero porque no hay JavaScript para bloquear el bucle aquí. Así que las métricas generales son bastante malas, pero no las peores porque tenemos un buen TBT y cambio de diseño acumulativo. Pero por supuesto, la aplicación no se siente muy bien.

Así que déjame también revisar rápidamente el código aquí. Y el componente más importante es el diseño aquí. Y es un componente del servidor. Así que puede ser asíncrono y puede buscar asíncronamente la información del proyecto y el resumen de tareas de mi base de datos aquí.

2. Improving navigation and data fetching

Short description:

Traer la base de datos, renderizar la información del proyecto y las pestañas de estado, consultar la base de datos dinámicamente, usar suspense para mejorar la navegación por pestañas, enviar datos a los componentes para ejecución paralela, desbloquear la carga inicial con fallbacks de suspense, transmitir en componentes del servidor, los componentes ahora son componibles.

Y solo estoy trayendo la base de datos. Y también se ha ralentizado y usando algunas cookies para hacer esto dinámico. Y esto ahora se está utilizando para renderizar una información del proyecto, algunas pestañas de estado. Y luego también tengo una propiedad children aquí, que corresponde a mi página TSX dentro del dinámico. Y esto está usando la pestaña y la búsqueda para directamente dentro del componente del servidor, consultar la base de datos y obtener los resultados filtrados aquí. Así que de nuevo, estas son solicitudes dinámicas. Si hubiera sido estático, sería realmente fácil. Pero como es dinámico, queremos, o tenemos que esperarlo en tiempo de ejecución en el servidor aquí.

Así que básicamente lo que quiero hacer es elevar la velocidad, interactividad y experiencia del usuario de esta aplicación y mejorar los web vitals que son malos sin empeorar los buenos. Y comencemos mejorando la experiencia del usuario de estas pestañas porque no navegan de inmediato. La razón de esto es que estamos esperando que el componente del servidor termine de renderizar en el servidor antes de que podamos navegar. Así que para solucionar esto, usaré un suspense y me permitirá desbloquear la página y renderizar un fallback. Así que voy a hacer un suspense implícito con un archivo load TSX aquí. Y solo voy a dejar un esqueleto simple. Y ahora estoy renderizando un límite de suspense aquí y puedo navegar libremente por estas pestañas mientras espero que el componente del servidor se transmita. Así que eso es bueno ahora. Sin embargo, todavía estoy bloqueado en la carga inicial aquí durante esos tres segundos y medio. Y eso es porque en mi diseño, estoy esperando el proyecto y el resumen de tareas. Y en realidad estoy ejecutando estos secuencialmente aunque no dependen uno del otro. Así que el primer pensamiento aquí podría ser ejecutarlos en paralelo usando promise all y eso ayudaría, todavía estaríamos bloqueados en la carga inicial por el await aquí. Así que vamos a enviar los datos a los componentes que están usando los datos. Así que vamos a cortar esto y dejarlo dentro de la información del proyecto. Eliminar los props y simplemente ponerlo aquí. Así. Y luego voy a hacer lo mismo para el resumen de tareas. Deshazte de esto y déjalo aquí e impórtalo. Y todavía estaré bloqueado hasta que ponga un límite de suspense aquí alrededor de estos datos dinámicos. Así que voy a hacer eso simplemente obteniendo un div simple que diga cargando, y voy a poner esto también alrededor de mis pestañas de estado aquí. Y lo que verás ahora es que he podido desbloquear la carga inicial con estos fallbacks de suspense y transmitir en los componentes del servidor a medida que se completan. Y cada componente ahora es responsable de sus propios datos, lo que significa que ahora son componibles.

3. Improving visual stability and user experience

Short description:

Utilizar la carga compartida de cómputo, mostrar pantalla de carga, abordar el cambio de diseño acumulativo, dimensionar correctamente los fallbacks de carga, mejorar la experiencia del usuario.

Y también estamos utilizando la carga compartida de cómputo entre el servidor y el cliente al hacerlo de esta manera. Y podemos mostrar algo en la pantalla mientras esperamos que los componentes del servidor se carguen. Ahora, tal vez estés notando que estoy obteniendo esta inestabilidad visual aquí, y eso es cambio de diseño acumulativo. Así que puedo ver que tengo un cambio de diseño acumulativo de 0.06 ahora, mientras que antes era cero. Y eso es una experiencia de usuario muy incómoda. Así que eso significa que tengo que dimensionar mis fallbacks de carga correctamente para que correspondan al contenido que se va a transmitir. Así que puedo simplemente copiar este componente. De hecho, ya he hecho algunos esqueletos aquí. Voy a importar estos esqueletos. Y están dimensionados correctamente. Así que ahora tengo este buen fallback que no distorsiona mi vista aquí. Y volvemos a un cambio de diseño acumulativo de 0 aquí.

4. Improving user experience and fixing search

Short description:

Transmitir componentes del servidor, reducir Contentful Paint, mejorar la experiencia del usuario, arreglar la búsqueda con mejora progresiva.

Y como puedes ver, al transmitir los componentes del servidor a medida que se completan, en realidad he reducido mi mayor Contentful Paint y mi primer Contentful Paint a 0.1, que es la información del producto aquí.

Continuemos mejorando la experiencia del usuario, porque todavía estamos obteniendo esta incómoda actualización de página completa en la búsqueda, y no estamos viendo la pestaña activa actual. Así que voy a ir a las pestañas de estado. Y voy a obtener los params del hook use params de tu JS y usar la pestaña de los params como, y tengo que hacer de esto un componente cliente ahora, porque estoy tratando de usar este hook.

Así que uso cliente, pero estoy teniendo un problema, y es que no puedo tener un componente cliente async. Así que voy a eliminar el async. Pero ahora ya no puedo esperar mi resumen de tareas. Así que supongo que tengo que volver a poner eso en el layout. Solo ponlo aquí. Pero esto, nuevamente, me bloquearía de obtener este tiempo de respuesta inicial rápido del servidor. Así que en lugar de esperarlo, simplemente lo dejaré sin resolver y lo pasaré a las pestañas de estado como una promesa. Lo llamaré promesa de resumen de tareas. Aquí vamos. Y ahora puedo agregar esta promesa a los props. Y usaré el API de React 19 use para resolver esta promesa dentro del componente cliente y permitir que se suspenda de la misma manera que antes. Para que aún pueda obtener este bonito límite de suspense y transmitir el componente, y también puedo ver la pestaña activa en este componente cliente y navegar entre ellas.

La siguiente tarea aquí sería arreglar la búsqueda. Así que en la búsqueda, voy a agregar una mejora progresiva a este caso base de Node JavaScript con un controlador de cambio. Vamos a necesitar un evento, y también vamos a necesitar un par de otras cosas aquí. Los params nuevamente, y los params de búsqueda esta vez. Params de búsqueda de Next.js, usa params de búsqueda. Y vamos a necesitar el router. Usa router de Next. Navegación. Y voy a usar los params de búsqueda para crear un estado en la URL aquí. Así que crearé algunos nuevos params de búsqueda y los empujaré al cambio del router. Así que estamos usando el estado como nuestra única fuente de verdad. Lo siento, usando la URL como nuestra única fuente de verdad para este filtrado aquí. Y luego también voy a importar los params y usarlos para restablecer el formulario cuando cambie la pestaña vinculando la clave a la pestaña. Y también necesito un valor predeterminado de solo campo de entrada para que sean los params de búsqueda con una consulta.

5. Enhancing search navigation and user feedback

Short description:

Hacer que la búsqueda tenga retroalimentación instantánea con componente cliente y transición para mostrar el spinner de carga durante la navegación.

Y de nuevo, tengo que convertirlo en un componente cliente porque estoy tratando de usar cosas del lado del cliente aquí como hooks. Así que nota lo que verás aquí es que cuando intento buscar algo, estoy obteniendo esto en el cambio, pero no estoy recibiendo ninguna retroalimentación instantánea porque el router, la forma en que funciona, va a enrutar después de que lo que sea que esté en la página termine de resolverse, que es este lento componente de servidor de tabla. Y para al menos rastrear el estado de esta navegación para que pueda ver como usuario que algo está sucediendo, voy a usar una transición de React 18. Y me permitirá marcar algo como una transición no bloqueante con start transition. Y también me devolverá un estado pendiente de esa transición. Y puedo envolver mi enrutamiento de ruta con esta transición y usar el estado pendiente para habilitar un spinner de carga aquí. Para que cuando estemos haciendo la transición a esta nueva página, obtengamos este spinner de carga mostrando el estado de esa navegación. Y debido a que esto es una mejora progresiva, eso significa que si este formulario es hidratado por JavaScript, tendremos este cambio ejecutándose y de lo contrario, será simplemente un formulario simple.

6. Adding category filter with loading state

Short description:

Agregar filtro de categoría con estado de carga usando transición y efecto de pulsación CSS para indicar transición en curso.

Voy a añadir otro componente aquí, de hecho, porque también quiero tener un filtro de categoría aquí. Y este componente toma una promesa de categorías, leyéndola con use de la misma manera que lo hace el status tabs. Y {{^}}voy a obtener esto aquí dentro del layout. Así que las categorías de getCategories aquí. Ups, debería ser const. Y voy a pasar esto hacia abajo. Y también necesito suspenderlo de nuevo para no bloquear el layout aquí. Así que voy a añadir un suspense y simplemente volver a un botón de toggle deshabilitado simple.

Y luego, con suerte, podré envolver esto correctamente. Introducir el botón de toggle. Y veamos cómo se ve. Tengo esta carga y luego tengo este grupo de botones de toggle aquí para las categorías. Pero de nuevo, cuando hago clic en estos, no obtengo ninguna retroalimentación, y eso es porque estamos esperando que el componente del servidor termine de obtener datos de la base de datos con el filtrado correcto. Así que al menos añadamos un estado de carga a este filtro de categoría. Vamos a usar una transición, de nuevo, de la misma manera que acabamos de hacer con React 18. Añadir una transición alrededor del enrutamiento. Y necesitamos usar asPending de alguna manera. Pero no es tan sencillo porque no quiero hacer que este botón gire ni nada por el estilo. Eso sería un poco excesivo.

Así que en su lugar, voy a usarlo para añadir un atributo data pending a este div si es verdadero. Y en mi layout aquí, de hecho, tengo una clase de grupo en este div que envuelve todo. En la pestaña, estoy usando una pseudo clase has para hacer una animación de pulsación si el grupo tiene una propiedad o un atributo de data pending. Estoy usando solo CSS en lugar de un proveedor de estado global aquí. Así que ahora cuando estoy alternando esto, veré un efecto de pulsación aquí, haciéndome saber que algo está, de hecho, sucediendo dentro de la aplicación. Así que eso es bueno porque puedo mostrar el contenido de venta pero también hacerle saber al usuario que hay una transición en curso.

7. Enhancing interactivity with React 19 hooks

Short description:

Usa el hook de React 19 use optimistic para crear categorías instantáneas que no dependan de la red. Deduplica la solicitud usando la API cache de React 19.

Pero todavía no estoy contenta con las pestañas porque preferiría que fueran más interactivas de forma natural. Así que para resolver esto, usaremos el hook de React 19, use optimistic. Y tomará un estado para mostrar cuando no hay ninguna acción pendiente. Y vamos a poner esta verdad desde la URL aquí, los amigos de búsqueda allí. Y luego devolverá categorías optimistas y una función para establecer las categorías optimistas. Podemos usar esto como nuestros valores seleccionados. Y podemos configurarlos antes de empujar al enrutador.

Así que estas son las categorías optimistas aquí. Y ahora déjame simplemente refrescar aquí. Lo que sucederá es que use optimistic crea este estado de cliente optimista que se descarta cuando se asienta con la verdad del enrutador aquí. Lo que significa que nuestras categorías son instantáneas y no dependen de la red. Y el crédito es para Sam Zelikoff con su publicación en build UI para este patrón. Es un patrón realmente agradable.

Ahora hay otra cosa que tengo que arreglar porque cuando introduje las categorías, estoy llamando getCategoriesMap aquí. Y de hecho también lo estoy llamando dentro del resumen de tareas para poder mapearlo a las categorías correctas aquí. Así que estoy llamando a esta función dos veces. Y si refrescas, puedes ver aquí que se está llamando dos veces. Y eso no es óptimo. Así que lo que puedo hacer es dirigirme a esta función y envolverla con otra API de React 19 llamada cache. Esta es una función de orden superior que me permitirá reutilizar el valor de retorno de esto. Y no debería estar allí, sino aquí. Voy a importarlo. Y ahora deduplicará esta solicitud ya que se está llamando dos veces en el mismo renderizado.

Y no sé si viste eso, pero el tiempo de carga realmente bajó de 2.7 a 2.2. Y ahora solo se está llamando una vez dentro de la consola aquí. Y estoy deduplicando esta solicitud. Y lo que esto significa como desarrollador es que podemos seguir usando nuestro patrón común de probar datos dentro de los componentes de manera similar a como lo haríamos, por ejemplo, con TensorQuery en una aplicación del lado del cliente, lo cual es agradable. No tienes que aprender un conjunto completamente nuevo de patrones aquí. Hagamos una demostración final aquí.

8. Optimizing Rendering and Lighthouse Scores

Short description:

Elimina filtros y campo de búsqueda para ver contenido al instante. La URL como única fuente de verdad permite un estado recargable, compartible y marcable. Mejora de puntajes de Lighthouse optimizando el renderizado. Logró un puntaje de 96 con un tiempo de carga de 2.2s.

Voy a eliminar mis filtros aquí para que puedas ver algunas cosas más. Y simplemente eliminar el campo de búsqueda aquí. Así que ahora, cuando cargo esta aplicación, puedo ver el contenido de inmediato e incluso puedo interactuar con las pestañas mientras espero que los componentes del servidor terminen de renderizarse en el servidor y se transmitan. E incluso puedo interactuar con mi filtro aquí mientras hago eso. Y puedo hacer una búsqueda. Y puedo recargar la aplicación y tener el mismo estado exacto debido a que la URL es nuestra única fuente de verdad aquí, lo que significa que el estado de la aplicación es recargable, compartible, y se puede marcar como favorito. Y esto es realmente bastante robusto porque hemos estado mejorando progresivamente el caso sin JavaScript y solo agregamos una pequeña cantidad de JavaScript donde lo necesitamos. Y no hay use effects o use states en esta aplicación porque estamos haciendo aplicaciones interactivas sin ellos en este nuevo mundo de React Server Components.

Finalmente, permíteme revisar los puntajes de Lighthouse. Acabo de ejecutarlo porque toma un poco de tiempo. Lo ejecuté justo antes de la charla. Y he podido mejorar el primer Contentful Paint y el último Contentful Paint al mostrar instantáneamente este encabezado de información del proyecto. Y el índice de velocidad también es mucho mejor porque está mostrando incrementalmente más y más contenido. Así que aunque tenemos búsquedas de datos lentas, estamos obteniendo muy buenos puntajes allí. Y el tiempo total de bloqueo sigue siendo cero, lo cual es bueno, correspondiente a nuestros clics responsivos y baja cantidad de JavaScript y sin tareas largas. Y todavía tenemos un cambio de diseño acumulativo de cero porque dimensionamos correctamente nuestros límites de suspense. Así que mejoramos enormemente el rendimiento, obteniendo un puntaje de Lighthouse de 96 incluso con un tiempo de carga de 2.2 segundos, lo que significa que logramos completar la tarea de mejorar estas malas métricas y mantener las buenas mientras también hacemos que la aplicación sea rápida, interactiva y amigable para el usuario.

Así que eso es todo para esta charla. El código está fijado en mi GitHub. Y puedes seguirme en Twitter si estás interesado en más contenido de RSC. Gracias por escuchar.

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.
Una Guía del Comportamiento de Renderizado de React
React Advanced 2022React Advanced 2022
25 min
Una Guía del Comportamiento de Renderizado de React
Top Content
This transcription provides a brief guide to React rendering behavior. It explains the process of rendering, comparing new and old elements, and the importance of pure rendering without side effects. It also covers topics such as batching and double rendering, optimizing rendering and using context and Redux in React. Overall, it offers valuable insights for developers looking to understand and optimize React rendering.
Acelerando tu aplicación React con menos JavaScript
React Summit 2023React Summit 2023
32 min
Acelerando tu aplicación React con menos JavaScript
Top Content
Mishko, the creator of Angular and AngularJS, discusses the challenges of website performance and JavaScript hydration. He explains the differences between client-side and server-side rendering and introduces Quik as a solution for efficient component hydration. Mishko demonstrates examples of state management and intercommunication using Quik. He highlights the performance benefits of using Quik with React and emphasizes the importance of reducing JavaScript size for better performance. Finally, he mentions the use of QUIC in both MPA and SPA applications for improved startup performance.
Enrutamiento en React 18 y más allá
React Summit 2022React Summit 2022
20 min
Enrutamiento en React 18 y más allá
Top Content
Routing in React 18 brings a native app-like user experience and allows applications to transition between different environments. React Router and Next.js have different approaches to routing, with React Router using component-based routing and Next.js using file system-based routing. React server components provide the primitives to address the disadvantages of multipage applications while maintaining the same user experience. Improving navigation and routing in React involves including loading UI, pre-rendering parts of the screen, and using server components for more performant experiences. Next.js and Remix are moving towards a converging solution by combining component-based routing with file system routing.
Concurrencia en React, Explicada
React Summit 2023React Summit 2023
23 min
Concurrencia en React, Explicada
Top Content
React 18's concurrent rendering, specifically the useTransition hook, optimizes app performance by allowing non-urgent updates to be processed without freezing the UI. However, there are drawbacks such as longer processing time for non-urgent updates and increased CPU usage. The useTransition hook works similarly to throttling or bouncing, making it useful for addressing performance issues caused by multiple small components. Libraries like React Query may require the use of alternative APIs to handle urgent and non-urgent updates effectively.
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.

Workshops on related topic

Masterclass de Depuración de Rendimiento de React
React Summit 2023React Summit 2023
170 min
Masterclass de Depuración de Rendimiento de React
Top Content
Featured Workshop
Ivan Akulov
Ivan Akulov
Los primeros intentos de Ivan en la depuración de rendimiento fueron caóticos. Vería una interacción lenta, intentaría una optimización aleatoria, vería que no ayudaba, y seguiría intentando otras optimizaciones hasta que encontraba la correcta (o se rendía).
En aquel entonces, Ivan no sabía cómo usar bien las herramientas de rendimiento. Haría una grabación en Chrome DevTools o React Profiler, la examinaría, intentaría hacer clic en cosas aleatorias, y luego la cerraría frustrado unos minutos después. Ahora, Ivan sabe exactamente dónde y qué buscar. Y en esta masterclass, Ivan te enseñará eso también.
Así es como va a funcionar. Tomaremos una aplicación lenta → la depuraremos (usando herramientas como Chrome DevTools, React Profiler, y why-did-you-render) → identificaremos el cuello de botella → y luego repetiremos, varias veces más. No hablaremos de las soluciones (en el 90% de los casos, es simplemente el viejo y regular useMemo() o memo()). Pero hablaremos de todo lo que viene antes - y aprenderemos a analizar cualquier problema de rendimiento de React, paso a paso.
(Nota: Esta masterclass es más adecuada para ingenieros que ya están familiarizados con cómo funcionan useMemo() y memo() - pero quieren mejorar en el uso de las herramientas de rendimiento alrededor de React. Además, estaremos cubriendo el rendimiento de la interacción, no la velocidad de carga, por lo que no escucharás una palabra sobre Lighthouse 🤐)
AI para Desarrolladores de React
React Advanced 2024React Advanced 2024
142 min
AI para Desarrolladores de React
Top Content
Featured Workshop
Eve Porcello
Eve Porcello
El conocimiento de las herramientas de AI es fundamental para preparar el futuro de las carreras de los desarrolladores de React, y la suite de herramientas de AI de Vercel es una vía de acceso accesible. En este curso, examinaremos más de cerca el Vercel AI SDK y cómo esto puede ayudar a los desarrolladores de React a construir interfaces de transmisión con JavaScript y Next.js. También incorporaremos APIs de terceros adicionales para construir y desplegar una aplicación de visualización de música.
Temas:- Creación de un Proyecto de React con Next.js- Elección de un LLM- Personalización de Interfaces de Transmisión- Construcción de Rutas- Creación y Generación de Componentes - Uso de Hooks (useChat, useCompletion, useActions, etc)
Tracing: Frontend Issues With Backend Solutions
React Summit US 2024React Summit US 2024
112 min
Tracing: Frontend Issues With Backend Solutions
Top Content
Featured WorkshopFree
Lazar Nikolov
Sarah Guthals
2 authors
Los problemas de frontend que afectan a tus usuarios a menudo son provocados por problemas de backend. En esta masterclass, aprenderás cómo identificar problemas que causan páginas web lentas y malos Core Web Vitals usando tracing.
Luego, pruébalo tú mismo configurando Sentry en un proyecto Next.js ya preparado para descubrir problemas de rendimiento, incluyendo consultas lentas a la base de datos en una sesión interactiva de programación en pareja.
Saldrás de la masterclass siendo capaz de:- Encontrar problemas de backend que podrían estar ralentizando tus aplicaciones de frontend- Configurar tracing con Sentry en un proyecto Next.js- Depurar y solucionar problemas de rendimiento deficiente usando tracing
Este será un evento en vivo de 2 horas donde tendrás la oportunidad de codificar junto con nosotros y hacernos preguntas.
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!
El Viaje Desde el Frontend con React al Desarrollo Fullstack Con Next.js
React Summit 2025React Summit 2025
91 min
El Viaje Desde el Frontend con React al Desarrollo Fullstack Con Next.js
Featured Workshop
Eric Burel
Eric Burel
Únete a nosotros en el viaje desde el desarrollo frontend con React hasta el desarrollo fullstack con Next.js. Durante esta masterclass, seguiremos el tutorial oficial de Next.js Learn con Eric Burel, entrenador profesional y autor de NextPatterns.dev. Juntos, configuraremos un sitio web con Next.js y exploraremos sus características del lado del servidor para construir aplicaciones de alto rendimiento.
Construye una aplicación WordPress sin cabeza con Next.js y WPGraphQL
React Summit 2022React Summit 2022
173 min
Construye una aplicación WordPress sin cabeza con Next.js y WPGraphQL
Top Content
Workshop
Kellen Mace
Kellen Mace
En esta masterclass, aprenderás cómo construir una aplicación Next.js que utiliza Apollo Client para obtener datos de un backend de WordPress sin cabeza y usarlo para renderizar las páginas de tu aplicación. Aprenderás cuándo debes considerar una arquitectura de WordPress sin cabeza, cómo convertir un backend de WordPress en un servidor GraphQL, cómo componer consultas usando el IDE GraphiQL, cómo colocar fragmentos GraphQL con tus componentes, y más.