Una Guía para el Renderizado del Compilador de React

This ad is not shown to multipass and full ticket holders
React Summit US
React Summit US 2026
November 17 - 20, 2026
New York, US & Online
Upcoming event
React Summit US 2026
React Summit US 2026
November 17 - 20, 2026. New York, US & Online
Bookmark
Rate this content
Sentry
Promoted
Code breaks, fix it faster

Crashes, slowdowns, regressions in prod. Seer by Sentry unifies traces, replays, errors, profiles to find root causes fast.

Get started

React es una biblioteca para "renderizar" UI desde componentes, pero muchos usuarios se encuentran confundidos sobre cómo funciona realmente el renderizado de React. El nuevo React Compiler promete "optimizar automáticamente tu aplicación de React"... pero ¿qué está _haciendo_ realmente a tu componente? ¿Cómo hace ese complejo código escrito por el compilador para que tu aplicación sea más rápida? ¿Cómo cambia el Compilador el modelo fundamental de larga data del comportamiento de renderizado de React?

En esta charla, aclararemos la confusión y proporcionaremos una base sólida para entender cuándo, por qué y cómo React renderiza. Veremos las técnicas integradas de React para optimizar el rendimiento del renderizado, incluyendo el truco poco conocido del que depende el Compilador. Desmitificaremos la salida del Compilador y desglosaremos exactamente qué hace ese código. Finalmente, veremos cómo el Compilador reescribe nuestra mentalidad de usar React en sí mismo, y qué significa eso para aprender y usar React en el futuro.

Te irás con un modelo mental preciso del comportamiento de React antes y después del Compilador, y estarás listo para usar React de manera más efectiva.

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

Mark Erikson
Mark Erikson
32 min
12 Jun, 2026

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Marc Erickson discute los fundamentos del renderizado de React, la optimización del rendimiento y la eficiencia del compilador. El compilador de React optimiza componentes con memoization y recalcula cambios de manera eficiente. React 19 introduce memo cache hook para la optimización del rendimiento. Las mejoras en la ejecución lógica, la optimización de referencias y los cambios de contexto mejoran el rendimiento del renderizado. El compilador de React impacta los re-renderizados basados en props, inputs y transiciones de herramientas. Desarrollar un depurador de viaje en el tiempo en Replay aborda los desafíos de investigación de errores. Comprender la optimización de código y las transiciones de herramientas de construcción de React son cruciales para la investigación del rendimiento en la ingeniería de software.

1. Understanding React Rendering Fundamentals

Short description:

Marc Erickson, senior time-travel engineer at Replay, discute la representación del compilador de React, enfatizando la importancia de entender los fundamentos de React y los objetivos para la sesión. La representación en React involucra componentes, sintaxis JSX, llamadas a create element, DOM virtual y el comportamiento predeterminado de React al actualizar componentes.

Muy bien. Buenos días, Ámsterdam. Mi nombre es Marc Erickson, y estoy muy emocionado de compartir con ustedes una guía sobre la representación del compilador de React. Un par de cosas rápidas sobre mí. Soy un ingeniero de viaje en el tiempo senior en Replay, donde construimos un depurador de viaje en el tiempo para tanto humanos como agentes. Responderé preguntas en cualquier lugar donde haya un cuadro de texto en Internet. Ayudo a moderar las comunidades de React. Recolecto enlaces interesantes y hablo sobre ellos en lugares como el podcast This Month in React. Escribo publicaciones de blog extremadamente largas. Recientemente escribí un artículo sobre mi propia experiencia emocional usando IA, así como mi flujo de trabajo, y soy un mantenedor de Redux. Hace casi exactamente diez años que he estado trabajando en Redux. Pero también la mayoría de la gente me conoce como ese tipo con el avatar de los Simpsons, que en realidad ahora está ligeramente desactualizado. Me hice LASIK en enero.

¿Por qué estamos hablando de la representación de React hoy? Soy un firme creyente de que es importante conocer los fundamentos de las herramientas que estamos usando, y eso es aún más cierto en una era de IA. Incluso hoy, veo a muchas personas con conceptos erróneos sobre cómo React realmente funciona. Cuando hablamos del compilador de React, voltea parte de ese comportamiento predeterminado al revés. Necesitas asegurarte de entender los fundamentos primero. Y esto es realmente ciencia, no magia. Así que los objetivos para hoy, pasaremos algún tiempo revisando algunos fundamentos del comportamiento de React, vamos a ver las opciones que tenemos disponibles para optimizar el rendimiento de React, veremos lo que hace el compilador y cómo se ve la salida, y luego terminaremos hablando sobre cómo cambia nuestro modelo mental de cómo usar React. Las diapositivas están en mi blog, blog.isquaredsoftware.com, y tendré el enlace allí nuevamente al final.

De vuelta al principio. ¿Qué es la representación? La representación es el proceso de React preguntando a tus componentes, ¿cómo quieres que se vea la interfaz de usuario en este momento? Normalmente, la salida de la representación se basa en los props actuales y el estado de ese componente. Cuando escribimos componentes, escribimos esta sintaxis de corchetes angulares JSX que hemos visto y todos conocemos y amamos, y cuando escribimos la sintaxis JSX en nuestro código, en tiempo de compilación, eso se convierte en llamadas a create element, y luego en tiempo de ejecución, tu componente se ejecuta, llama a create element, y devuelve estos objetos de elemento que tienen el componente y sus props y los hijos. Si alguna vez has escuchado el término DOM virtual, eso realmente solo describe estos objetos de elemento. Así que durante una representación, React recorre todos tus componentes, recopila todos los objetos de elemento en un árbol, y luego compara los árboles de elementos antiguos y nuevos para averiguar, ¿estás pidiendo algo diferente en la interfaz de usuario esta vez? Ahora, un punto muy, muy importante, si hay algo que recuerdes, por favor recuerda esta diapositiva justo aquí. El comportamiento predeterminado de React es que cuando representas en un componente, llamas a set state, React seguirá recursando a través de todos los hijos debajo de eso. Así que si llamo a set state en el componente de la aplicación allá arriba, continuará a través de los cuatro hijos debajo de eso. Si llamo a set state en el componente de inspiración, también representará los dos hijos debajo de eso. Sigue bajando a través de todos los hijos debajo. Ahora, cuando representamos, esto no siempre significa que hay una actualización en el DOM.

2. Optimizing React Rendering Performance

Short description:

React discute la representación, evitando esfuerzos desperdiciados, reglas para la representación, optimizando el rendimiento con la función memo y el truco de referencia de elementos, y conceptos erróneos comunes sobre la re-representación de componentes en React.

React originalmente habló sobre la representación como volver a dibujar toda tu página, pero en realidad, ¿hubo alguna diferencia? ¿Hay algún cambio solicitado en la interfaz de usuario? Entonces es posible representar un componente, hacer que solicite el mismo resultado que la última vez, y si lo piensas, entonces eso es un tipo de esfuerzo desperdiciado. Pasamos por el proceso de ejecutar el componente y generar los elementos y en realidad no se necesitaba cambiar nada, por lo que podemos pensar en esos como representaciones desperdiciadas, y generalmente eso es si hay los mismos props en el mismo estado, entonces estamos pidiendo los mismos hijos que la última vez. Pero en general, la representación no es algo malo. Es cómo React sabe si hay algo que necesitamos actualizar.

Ahora, React tiene una serie de reglas que se supone que debes seguir. No se supone que debamos mutar valores existentes como props y estado, no deberías estar generando valores aleatorios mientras representas, y especialmente nunca uses esos como claves. Está bien mutar valores que creaste durante el proceso de representación. Un console log es técnicamente un efecto secundario, pero está bien, eso no rompe nada. Hay momentos en los que puedes inicializar perezosamente un objeto ref. No deberías estar activando solicitudes mientras representas, a menos que estés usando suspense, y en teoría puedes llamar a set state mientras representas, pero solo si es condicional. Hay algunas cosas que debes tener en cuenta mientras representas.

Entonces, ¿cómo optimizamos realmente el rendimiento? React nos da algunas herramientas para hacer eso, y la forma principal de optimizar es diciendo si los props de este componente no han cambiado, no lo representes. Y si omitimos este componente, eso significa que también omitimos todos los hijos dentro de él. Así que la herramienta principal que React nos da es la función memo. Si alguna vez has escuchado el término componente de orden superior, solo significa que es un envoltorio alrededor del componente real que tienes. Así que memo es un componente de orden superior que automáticamente mira todos los props entrantes, y si ninguno de los props ha cambiado, omite este componente. Ahora hay otro truco muy poco conocido que está integrado en React que ha existido realmente desde el principio, pero nadie sabe que esto existe. Si estás representando un componente, y, como parte del resultado, incluyes la misma referencia de objeto de elemento exacta que tenías la última vez, React llegará a esa parte, y dirá este es el mismo elemento. Solo voy a omitir esto. Hay un par de maneras de hacer esto. Una es haciendo un use memo para memorizar la creación de algunos de los elementos, o si alguna vez has usado el prop children e incluido eso en el resultado, ese es el mismo elemento que la última vez. Y la forma en que me gusta pensar en esto es React.memo es el propio componente hijo diciendo, quiero ser optimizado. Solo vuelve a representarme si mis props cambian. Me gusta pensar en el truco de referencia de elemento como el componente padre diciendo si los inputs de este no han cambiado, no lo representes. Ahora, en esa nota, esta es una de las ideas erróneas más comunes que todavía he visto a lo largo de los años. La gente realmente desde el principio asumió que React solo vuelve a representar mis componentes cuando sus props cambian. No, no, ese no es el caso. Dije antes, cuando React representa, simplemente sigue de arriba a abajo desde donde hiciste un set state. La única vez que las referencias de props importan es si estás tratando de optimizarlo. Si tienes un React.memo, entonces los props importan.

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

Estudio de caso: Construcción de componentes React reutilizables accesibles en GitHub
React Summit 2024React Summit 2024
29 min
Estudio de caso: Construcción de componentes React reutilizables accesibles en GitHub
The talk discusses building accessible React components and emphasizes the importance of using the correct HTML elements and ARIA roles for accessibility. It explains how to navigate and select options within a form and how to add supplementary text using Aria described by. The speaker also discusses the benefits of using conditional checkboxes and ARIA disabled to improve the UI. Additionally, the talk explores the role of JavaScript in web accessibility and provides recommendations for testing website accessibility.
React Server Components en Aplicaciones de IA
React Advanced 2024React Advanced 2024
17 min
React Server Components en Aplicaciones de IA
Today we will discuss React server components with AI and how to build a better search experience using them. We will learn how to make a Next.js app AI-enabled using the Vercel AI SDK. The Vercel AI SDK's streamUI function with the GPT 4.0 model will be used to make suggestions interactive. We will explore the use of history and conversation in AI and how to continue the conversation and read the result. The concept of generative UI with the vector database will be introduced, along with querying the database for movies. We will process user queries and return movies based on them. The power of React server components in enhancing UI will be demonstrated. In summary, the Talk covers vector embeddings, natural language search, and generative UI.
Composición vs Configuración: Cómo Construir Componentes Flexibles, Resilientes y a Prueba de Futuro
React Summit 2022React Summit 2022
17 min
Composición vs Configuración: Cómo Construir Componentes Flexibles, Resilientes y a Prueba de Futuro
Top Content
Today's Talk discusses building flexible, resilient, and future-proof React components using composition and configuration approaches. The composition approach allows for flexibility without excessive conditional logic by using multiple components and passing props. The context API can be used for variant styling, allowing for appropriate styling and class specification. Adding variants and icons is made easy by consuming the variant context. The composition and configuration approaches can be combined for the best of both worlds.
El componente de React más caro del mundo y cómo dejar de escribirlo
React Advanced 2021React Advanced 2021
23 min
El componente de React más caro del mundo y cómo dejar de escribirlo
Top Content
Today's Talk discusses expensive React components and API design, with a focus on the cost of coordination and overcoming imposter syndrome. The speaker shares a story about a cat trying to fix salted coffee, highlighting the importance of finding simple solutions. The billion dollar component on ReactJS.org is examined as an example of an expensive component. Techniques for customizing messages, improving accessibility, and using polymorphic props are discussed. The Talk concludes by emphasizing the cost of communication and the need to evaluate if props and components are the right tools for the job.
Descubre si tu sistema de diseño es mejor que nada
React Summit 2022React Summit 2022
20 min
Descubre si tu sistema de diseño es mejor que nada
Building a design system without adoption is a waste of time. Grafana UI's adoption is growing consistently over time. The factors affecting design system adoption include the source mix changing, displacement of Homebrew components by Grafana UI, and the limitations of Grafana UI's current state. Measuring adoption is important to determine the success of a design system. The analysis of code through static code analysis tools is valuable in detecting and tracking component usage.
Cómo lograr la composición de diseño en React
React Summit 2022React Summit 2022
8 min
Cómo lograr la composición de diseño en React
This talk discusses achieving layout composition in React using Bedrock Layout Primitives. By componentizing CSS layout, complex layouts can be achieved and reused across different components. The talk also covers the challenges of achieving complex layouts, such as card lineups, and provides solutions for maintaining alignment and responsiveness. The BedrockLayout primitive library simplifies web layouts and offers flexibility in composing layouts.

Workshops on related topic

Práctica con la Rejilla de Datos React de AG Grid
React Summit 2022React Summit 2022
147 min
Práctica con la Rejilla de Datos React de AG Grid
Top Content
Workshop
Sean Landsman
Sean Landsman
Comienza con la Rejilla de Datos React de AG Grid con un tutorial práctico del equipo central que te llevará a través de los pasos para crear tu primera rejilla, incluyendo cómo configurar la rejilla con propiedades simples y componentes personalizados. La edición comunitaria de AG Grid es completamente gratuita para usar en aplicaciones comerciales, por lo que aprenderás una herramienta poderosa que puedes agregar inmediatamente a tus proyectos. También descubrirás cómo cargar datos en la rejilla y diferentes formas de agregar renderizado personalizado a la rejilla. Al final de la masterclass, habrás creado una Rejilla de Datos React de AG Grid y personalizado con componentes React funcionales.- Comenzando e instalando AG Grid- Configurando ordenación, filtrado, paginación- Cargando datos en la rejilla- La API de la rejilla- Usando hooks y componentes funcionales con AG Grid- Capacidades de la edición comunitaria gratuita de AG Grid- Personalizando la rejilla con Componentes React
Practica Técnicas de TypeScript Construyendo una Aplicación con Componentes de Servidor React
TypeScript Congress 2023TypeScript Congress 2023
131 min
Practica Técnicas de TypeScript Construyendo una Aplicación con Componentes de Servidor React
Workshop
Maurice de Beijer
Maurice de Beijer
En esta masterclass práctica, Maurice te guiará personalmente a través de una serie de ejercicios diseñados para empoderarte con una profunda comprensión de los Componentes de Servidor React y el poder de TypeScript. Descubre cómo optimizar tus aplicaciones, mejorar el rendimiento y desbloquear nuevas posibilidades.
 
Durante la masterclass, realizarás:
- Maximizar la mantenibilidad y escalabilidad del código con prácticas avanzadas de TypeScript
- Desatar los beneficios de rendimiento de los Componentes de Servidor React, superando enfoques tradicionales
- Potenciar tu TypeScript con el poder de los Tipos Mapeados
- Hacer tus tipos TypeScript más seguros con Tipos Opacos
- Explorar el poder de los Tipos de Plantillas Literales al usar Tipos Mapeados
 
Maurice estará virtualmente a tu lado, ofreciendo una guía completa y respondiendo a tus preguntas mientras navegas por cada ejercicio. Al final de la masterclass, habrás dominado los Componentes de Servidor React, armado con un nuevo arsenal de conocimientos de TypeScript para potenciar tus aplicaciones React.
 
No pierdas esta oportunidad de elevar tu experiencia en React a nuevas alturas. Únete a nuestra masterclass y desbloquea el potencial de los Componentes de Servidor React con TypeScript. Tus aplicaciones te lo agradecerán.
De la Idea a la Producción: Desarrollo de React con un Toque Visual
React Summit 2023React Summit 2023
31 min
De la Idea a la Producción: Desarrollo de React con un Toque Visual
WorkshopFree
Omer Kenet
Omer Kenet
Únete a nosotros para un masterclass de 3 horas que explora el mundo del desarrollo creativo de React utilizando Codux. Los participantes explorarán cómo un enfoque visual puede desbloquear la creatividad, agilizar los flujos de trabajo y mejorar la velocidad de desarrollo. Sumérgete en las características que hacen de Codux un cambio de juego para los desarrolladores de React. La sesión incluirá ejercicios prácticos que demuestran el poder de la renderización en tiempo real, la manipulación visual del código y el aislamiento de componentes, todo en tu código fuente.
Tabla de contenidos:- Descarga e instalación: Preparando Codux para el masterclass- Selector de proyectos: Clonación e instalación de un proyecto de demostración- Introducción a los conceptos principales de Codux y su interfaz de usuario- Ejercicio 1: Encontrando nuestro camino- Descanso- Ejercicio 2: Realizando cambios de manera efectiva- Ejercicio 3: Reutilización y validación de casos especiales- Resumen, Cierre y Preguntas y Respuestas
Curso intensivo de TypeScript para contenido de un CMS sin cabeza
React Summit 2022React Summit 2022
98 min
Curso intensivo de TypeScript para contenido de un CMS sin cabeza
Workshop
Ondrej Polesny
Ondrej Polesny
En este masterclass, primero te mostraré cómo crear un nuevo proyecto en un CMS sin cabeza, llenarlo con datos y usar el contenido en tu proyecto. Luego, pasaremos el resto del tiempo en código, haremos lo siguiente:- Generar modelos y estructuras de tipo fuertemente tipados para el contenido obtenido.- Usar el contenido en componentes- Resolver contenido de campos de texto enriquecido en componentes de React- Tocar los pipelines de implementación y las posibilidades de descubrir problemas relacionados con el contenido antes de llegar a producción
Aprenderás:- Cómo trabajar con contenido de un CMS sin cabeza- Cómo se puede aprovechar el modelo de contenido para generar tipos en TypeScript y qué beneficios aporta a tu proyecto- Cómo dejar de usar literales de cadena para el contenido en el código- Cómo resolver texto enriquecido en componentes de React- Cómo minimizar o evitar problemas relacionados con el contenido antes de llegar a producción
Escribe una vez, usa en todas partes: React se encuentra con Web Components
React Summit US 2025React Summit US 2025
78 min
Escribe una vez, usa en todas partes: React se encuentra con Web Components
Workshop
Hadar Geva
Hadar Geva
Este masterclass práctico explora cómo transformar componentes de React en Web Components basados en estándares, desbloqueando la capacidad de compartir elementos de UI a través de aplicaciones de Angular, Vue, Svelte, e incluso JavaScript puro. Mientras que frameworks como Angular y Vue ofrecen soporte nativo para este tipo de interoperabilidad, React no lo hace, al menos, no de forma predeterminada.Desmitificaremos cómo lograr resultados similares en React utilizando patrones y herramientas compatibles. A través de codificación en vivo y ejercicios guiados, aprenderás cómo cerrar la brecha entre React y el estándar de Web Components para promover la verdadera reutilización de componentes, reducir la duplicación y simplificar la integración en micro frontends y sistemas de diseño. Los participantes se irán con técnicas prácticas, conocimiento de herramientas y estrategias del mundo real que pueden aplicar inmediatamente a sus propios proyectos.