Escalando Aplicaciones React con Paralelismo: Patrones para UIs Multi-Hilo

This ad is not shown to multipass and full ticket holders
React Advanced
React Advanced 2025
November 27 - 1, 2025
London, UK & Online
We will be diving deep
Learn More
In partnership with Focus Reactive
Upcoming event
React Advanced 2025
React Advanced 2025
November 27 - 1, 2025. London, UK & Online
Learn more
Bookmark
Rate this content

Desbloquea todo el potencial de las aplicaciones web modernas con arquitecturas multi-hilo en React. Esta sesión explora estrategias para aprovechar Web Workers y OffscreenCanvas para paralelizar el procesamiento de datos, cálculos pesados y renderizado de UI. Descubriremos cómo crear interfaces que sean escalables y no estén restringidas por los cuellos de botella convencionales de JavaScript.

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

Shubham Gautam
Shubham Gautam
18 min
17 Jun, 2025

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Introducción al multihilo en React para experiencias de usuario más suaves mediante el uso de web workers y off-screen canvas. Herramientas para liberarse del single-threading de JavaScript con web workers y offscreen canvas. Rendimiento suave de UI con web workers, limitaciones y offscreen canvas para descargar el renderizado gráfico. Separación de diseño para prevenir problemas de hilo, descargar tareas intensivas de CPU a los trabajadores sin limitaciones de acceso al DOM. Gestionar la comunicación de WebWorker de manera efectiva con un enfoque basado en promesas para tareas. Mejorar la eficiencia de transferencia de datos con objetos transferibles y shared array buffer. Decidir cuándo utilizar técnicas de multi-hilo de manera sabia; reservar trabajadores para el procesamiento de datos y operaciones complejas. Las mejores prácticas incluyen terminar trabajadores cuando no son necesarios, perfilar aplicaciones y explorar el paralelismo futuro en el front-end para experiencias de usuario optimizadas.

1. Introducción a la Multitarea en React

Short description:

Introducción a la multitarea en React para experiencias de usuario más fluidas mediante el uso de web workers y canvas fuera de pantalla. Visión general de los desafíos enfrentados con JavaScript de un solo hilo en aplicaciones React y la necesidad de un mejor enfoque para mejorar las experiencias de usuario.

Hola a todos. Estoy realmente emocionado de profundizar en un tema que se está convirtiendo rápidamente en un elemento imprescindible en las aplicaciones web modernas, que es la multitarea en React. A medida que nuestras UIs se vuelven más ricas, tal vez piensen en tablas de datos gigantes, paneles en tiempo real y animaciones en canvas. Mantenerse en un solo hilo puede llevar a atascos, congelamientos y experiencias de usuario frustrantes. Así que hoy vamos a liberarnos de esas limitaciones utilizando web workers y canvas fuera de pantalla.

Estas son dos características del navegador que pueden ayudarnos a mantener nuestras aplicaciones increíblemente fluidas sin importar la carga de trabajo. Antes de comenzar, una rápida introducción. Soy Sribam Gautam, un ingeniero de software senior en Headout. Durante los últimos años, he trabajado en aplicaciones React a gran escala, desde flujos de reserva en tiempo real hasta UIs inmersivas con miles de usuarios activos diarios. Las técnicas que compartiré provienen de desafíos del mundo real que enfrento al empujar los límites de lo que es posible en el navegador.

Todos sabemos esto, JavaScript se ejecuta en un solo hilo. Eso significa que si algo está bloqueando el hilo, digamos un cálculo pesado, toda la aplicación se congela. Incluso operaciones simples como mapear o filtrar grandes arreglos pueden bloquear la UI. En React, es peor, porque tanto la lógica de tu componente como el renderizado ocurren en el mismo hilo. Así que echemos un vistazo a lo que eso podría significar para los usuarios. ¿Alguna vez han escrito en un cuadro de búsqueda y notaron que sus pulsaciones de teclas se retrasan? O tal vez intentaron desplazarse por una tabla masiva que simplemente se congela por un momento?

Es probable que el hilo principal esté sobrecargado. En las aplicaciones React modernas, esto puede suceder por todo tipo de razones. Tal vez ordenando tablas masivas, renderizando visualizaciones complejas, y tal vez validando formularios profundamente anidados. Pero lo que es frustrante aquí es que muchos equipos simplemente aceptan que este tipo de problemas es inevitable. Pero, honestamente, no lo es. Hay una mejor manera. Una que te brinda experiencias de usuario fluidas y receptivas sin comprometer realmente la complejidad o las características de tu aplicación. Así que vamos a profundizar.

2. Optimizando la Responsividad del Usuario con Web Workers

Short description:

Herramientas para liberarse de la naturaleza de un solo hilo de JavaScript con web workers y canvas fuera de pantalla. Utiliza web workers para hilos en segundo plano y canvas fuera de pantalla para renderizar fuera del hilo principal. Delegar cálculos pesados estratégicamente para optimizar la responsividad del usuario.

¿Entonces, qué podemos hacer sobre la naturaleza de un solo hilo de JavaScript? Afortunadamente, los navegadores modernos nos dan herramientas para liberarnos del hilo principal sin romper realmente nuestras aplicaciones. Las dos características clave de las que hablaremos hoy son web workers y canvas fuera de pantalla. Los web workers nos permiten crear hilos en segundo plano. Piénsalos como pequeños motores de JavaScript que están funcionando en paralelo, que son absolutamente perfectos para cálculos pesados. Luego, hablando de canvas fuera de pantalla. El canvas fuera de pantalla va un paso más allá. Nos permite mover el renderizado mismo del hilo principal. Eso significa animaciones y gráficos también. Pero aquí está el truco. No se trata solo de lanzar todo a un worker. Se trata de descargar estratégicamente para averiguar qué está ralentizando las cosas, qué no necesita acceso al DOM y qué se puede hacer de manera segura en segundo plano.

Nuestro objetivo aquí es asegurar que nuestro hilo principal esté enfocado en la responsividad del usuario, mientras que los hilos en segundo plano manejan todo el trabajo pesado. Así que ahora comencemos con los web workers. En su núcleo, un web worker es JavaScript ejecutándose en un hilo separado. Así es como podría verse en un componente de React. Creas un worker cuando el componente se monta. Te comunicas con él usando postMessage. Luego escuchas los resultados mediante onMessage, y siempre limpias cuando el componente se desmonta. La comunicación aquí ocurre a través de un sistema de mensajería. Enviamos datos al worker con postMessage, y recibimos resultados a través del evento onMessage. Esto realmente mantiene nuestro hilo de UI libre, incluso cuando estamos procesando grandes datos.

Así que aquí está cómo se ve el worker en sí. Lo primero a notar es que los web workers se ejecutan en un contexto completamente separado. No tienen acceso al DOM ni a los componentes de React. Escucha mensajes, ejecuta tus tareas pesadas de CPO, como transformar o filtrar datos, y luego envía los resultados de vuelta con postMessage. Piénsalo como un mini servidor que está funcionando dentro de tu navegador, que está realmente diseñado para descargar todo el trabajo pesado. Así que con esta configuración, tu aplicación se vuelve más inteligente sobre la delegación. Las tareas pesadas van al worker, mientras que tu UI se mantiene enfocada en la interacción del usuario. Ahora, veamos cuánto puede marcar la diferencia los web workers. En esta demostración, estamos calculando números primos hasta 100,000.

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

Escalando con Remix y Micro Frontends
Remix Conf Europe 2022Remix Conf Europe 2022
23 min
Escalando con Remix y Micro Frontends
Top Content
This talk discusses the usage of Microfrontends in Remix and introduces the Tiny Frontend library. Kazoo, a used car buying platform, follows a domain-driven design approach and encountered issues with granular slicing. Tiny Frontend aims to solve the slicing problem and promotes type safety and compatibility of shared dependencies. The speaker demonstrates how Tiny Frontend works with server-side rendering and how Remix can consume and update components without redeploying the app. The talk also explores the usage of micro frontends and the future support for Webpack Module Federation in Remix.
Entendiendo la Arquitectura Fiber de React
React Advanced 2022React Advanced 2022
29 min
Entendiendo la Arquitectura Fiber de React
Top Content
This Talk explores React's internal jargon, specifically fiber, which is an internal unit of work for rendering and committing. Fibers facilitate efficient updates to elements and play a crucial role in the reconciliation process. The work loop, complete work, and commit phase are essential steps in the rendering process. Understanding React's internals can help with optimizing code and pull request reviews. React 18 introduces the work loop sync and async functions for concurrent features and prioritization. Fiber brings benefits like async rendering and the ability to discard work-in-progress trees, improving user experience.
Thinking Like an Architect
Node Congress 2025Node Congress 2025
31 min
Thinking Like an Architect
Top Content
In modern software development, architecture is more than just selecting the right tech stack; it involves decision-making, trade-offs, and considering the context of the business and organization. Understanding the problem space and focusing on users' needs are essential. Architectural flexibility is key, adapting the level of granularity and choosing between different approaches. Holistic thinking, long-term vision, and domain understanding are crucial for making better decisions. Effective communication, inclusion, and documentation are core skills for architects. Democratizing communication, prioritizing value, and embracing adaptive architectures are key to success.
Componentes de Full Stack
Remix Conf Europe 2022Remix Conf Europe 2022
37 min
Componentes de Full Stack
Top Content
RemixConf EU discussed full stack components and their benefits, such as marrying the backend and UI in the same file. The talk demonstrated the implementation of a combo box with search functionality using Remix and the Downshift library. It also highlighted the ease of creating resource routes in Remix and the importance of code organization and maintainability in full stack components. The speaker expressed gratitude towards the audience and discussed the future of Remix, including its acquisition by Shopify and the potential for collaboration with Hydrogen.
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.

Workshops on related topic

IA a demanda: IA sin servidor
DevOps.js Conf 2024DevOps.js Conf 2024
163 min
IA a demanda: IA sin servidor
Top Content
Featured WorkshopFree
Nathan Disidore
Nathan Disidore
En esta masterclass, discutimos los méritos de la arquitectura sin servidor y cómo se puede aplicar al espacio de la IA. Exploraremos opciones para construir aplicaciones RAG sin servidor para un enfoque más lambda-esque a la IA. A continuación, nos pondremos manos a la obra y construiremos una aplicación CRUD de muestra que te permite almacenar información y consultarla utilizando un LLM con Workers AI, Vectorize, D1 y Cloudflare Workers.
Masterclass de alto rendimiento Next.js
React Summit 2022React Summit 2022
50 min
Masterclass de alto rendimiento Next.js
Workshop
Michele Riva
Michele Riva
Next.js es un marco convincente que facilita muchas tareas al proporcionar muchas soluciones listas para usar. Pero tan pronto como nuestra aplicación necesita escalar, es esencial mantener un alto rendimiento sin comprometer el mantenimiento y los costos del servidor. En este masterclass, veremos cómo analizar el rendimiento de Next.js, el uso de recursos, cómo escalarlo y cómo tomar las decisiones correctas al escribir la arquitectura de la aplicación.