Your React App Doesn't Need All That JavaScript

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

¿Deberíamos usar una biblioteca de gestión de estado para alternar el modo oscuro? ¿Realmente necesitamos un hook personalizado para abrir un acordeón? ¿Y cuántos event listeners son demasiados al animar en scroll?

React nos ofrece una forma increíblemente poderosa de construir UI, pero no todos los comportamientos de UI necesitan la maquinaria de nivel React.

En esta masterclass, echaremos un vistazo a cómo usar HTML y CSS para construir alternativas más simples a componentes interactivos comunes como acordeones, modales, transiciones de scroll, carruseles, etc. También analizaremos los beneficios de rendimiento y accesibilidad y las aplicaciones y casos de uso reales de estos componentes. 

El objetivo es simplificar cómo manejamos el contenido, la visualización y la animación utilizando características nativas del navegador y dejando que React haga lo que mejor sabe hacer: todo lo demás.

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

Jemima
Jemima
27 min
16 Jun, 2026

Comments

Sign in or register to post your comment.
Video Summary and Transcription
El uso excesivo de JavaScript en aplicaciones React lleva a una complejidad innecesaria, especialmente para tareas simples como alternar el modo oscuro. Aprovechar CSS para la implementación de temas oscuros en React puede simplificar la arquitectura y evitar la sobreingeniería. Considerando el papel de React en el manejo de tareas básicas como las preferencias del usuario y el cambio de tema. Explorando la eficiencia de CSS en componentes React para el cambio de tema y el estilo de los elementos padre, mostrando simplicidad y efectividad. Destacando el impacto en el rendimiento de la carga de JavaScript en la velocidad de carga de la página en escenarios de internet lento. Enfatizando los beneficios de HTML semántico para la accesibilidad y las características de acordeón. Discutiendo la importancia de mantenerse actualizado en el desarrollo web y utilizar patrones populares. Explorando la simplicidad de la implementación de modales y la facilidad de usar popover para modales y animaciones de scroll. Comparando la eficiencia de JavaScript y CSS para animaciones de scroll y el impacto en el hilo principal en el renderizado de scroll. Mostrando características innovadoras de CSS como la implementación de carruseles, botones de scroll y elementos select personalizables para el desarrollo web.

1. Analizando la Complejidad de JavaScript en React

Short description:

Usar JavaScript en exceso en aplicaciones de React se siente innecesariamente complicado, por ejemplo, para un simple cambio de modo oscuro. React implica un código complejo para tareas básicas como la gestión de estado, persistencia, arquitectura global y optimización, lo que lleva a renderizados excesivos debido a la propagación del estado en cada actualización.

¿Qué pasaría si te dijera que estás usando demasiado JavaScript en tus aplicaciones de React? Hola, mi nombre es Jemima. Soy ingeniera de producto en CASE. Soy una Google Developer Expert en Microsoft MVP y una Profesional Certificada en Competencias Básicas de Accesibilidad. Básicamente, lo que eso significa es que realmente me gusta explorar la web y compartir las cosas que he aprendido con otras personas. Y una cosa que tengo que surge constantemente en React, al menos para mí, es que simplemente sigue sintiéndose mucho más complicado de lo que necesita ser.

Entonces, ¿cuánto JavaScript crees que realmente necesita un cambio de modo oscuro? Quiero decir, como un cambio que simplemente cambia entre el modo claro y oscuro. Estás actualizando dos colores y estás haciendo clic en un botón, eso es todo, ¿verdad? En React, es mucho más código del que sientes que es necesario, o al menos yo siento que es necesario. Así que desglosamos lo que está sucediendo aquí, ¿verdad?

Primero, tenemos nuestros estados. Si estás usando React, tendrás que trabajar con estados. Si estás cambiando entre básicamente cualquier cosa, está bien. Ese estado, todos estamos acostumbrados a Y luego necesitamos persistencia. Así que quieres almacenar las preferencias del usuario, ¿verdad? Así que la próxima vez que visiten la página, puedan ver lo que seleccionaron la vez anterior. Eso también es genial. Nos importa la experiencia del usuario. Cosas increíbles. Y luego necesitamos arquitectura global. Si estás trabajando con React, necesitas algo que pase el mismo tema a cada componente y a través de múltiples páginas, ¿verdad? Así que necesitas un contexto y necesitas tu proveedor y necesitas todo lo que maneja tu gestión de pila global.

2. Optimizing React with CSS for Dark Theme

Short description:

La optimización de React usando memo para el cambio de tema puede llevar a renderizados excesivos y parpadeos de hidratación. Simplificar la arquitectura de React aprovechando CSS para la implementación del tema oscuro con un solo checkbox evita la complejidad innecesaria y la sobreingeniería.

Y luego, porque es React, vamos a incluir algo de optimización, porque ¿por qué no, verdad? Porque eso significa que nos aseguramos de estar usando memo. ¿Por qué necesitamos usar memo para cambiar el tema? Es uno u otro. Pero esa es la forma de hacer las cosas en React, ¿verdad? Para mí, esto se siente mucho más complicado de lo necesario. Recuerdo la primera vez que intenté construir un cambiador de tema en React. Y después de tener que descargar la biblioteca de gestión de estado, pensé, esto no se siente bien. Creo que estoy haciendo algo mal. Pero todos los artículos decían que lo estaba haciendo bien. Pero este es un método muy complicado de hacer las cosas. ¿Y cuál es el problema que enfrentamos cuando usamos algo complicado para manejar una tarea muy simple? Propagación de estado, ¿verdad? Así que primero, estamos manejando cada vez que la página se actualiza. Cada vez que cambiamos ese estado, ese estado necesita ser pasado a los componentes correspondientes. Así que eso significa que cada vez que haces clic en ese botón de cambio cualquier otro componente que necesite ese tema también se actualizará. Esto nos lleva a tener muchos renderizados en nuestra página. Porque React opera en un DOM virtual, cada vez que hacemos algún cambio, básicamente necesita actualizar todos los componentes que requieren ese cambio. Así que estamos causando renderizados. Y luego también tenemos los parpadeos de hidratación. Esto es cuando tu página se carga por primera vez. Y digamos que porque no has iniciado necesariamente tu React aún, vas a ver un, digamos que el usuario ha guardado el modo oscuro, vas a ver un destello de modo claro primero y luego el modo oscuro se activará. Así que para mí, esto se siente como mucho para hacer algo tan simple. Es como, imagina tener a Optimus Prime y lo estás usando para encender un interruptor de luz en tu casa. Es como si tuvieras esta plataforma gigante sobreingenierada y sobrepotenciada y la estás usando para manejar algo súper básico.

Bueno, ¿y si te dijera que hay una manera más fácil de hacer eso? Gracias a las características modernas de la web y el desarrollo, ya no tenemos que depender de la arquitectura de React sobrecomplicada para manejar componentes simples. Esta es una implementación simple de CSS que maneja el modo de tema oscuro usando solo un checkbox. Así que desglosamos lo que está sucediendo aquí. Primero, tenemos nuestro checkbox semántico en CSS y le estamos dando este un cambio de tema. Y luego tenemos el selector has. Esto es lo que está haciendo todo el trabajo. El selector has es algo que nos permite estilizar elementos padre basados en elementos hijo. Así que básicamente lo que estamos diciendo en este código es, si el checkbox de cambio de tema está marcado, da a las raíces un nuevo valor de fondo negro o texto blanco. Esto es lo que estamos usando para manejar el cambio al modo oscuro. En caso de manejar las preferencias del usuario, también podemos usar el esquema de color preferido.

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

No resuelvas problemas, elimínalos
React Advanced 2021React Advanced 2021
39 min
No resuelvas problemas, elimínalos
Top Content
Kent C. Dodds discusses the concept of problem elimination rather than just problem-solving. He introduces the idea of a problem tree and the importance of avoiding creating solutions prematurely. Kent uses examples like Tesla's electric engine and Remix framework to illustrate the benefits of problem elimination. He emphasizes the value of trade-offs and taking the easier path, as well as the need to constantly re-evaluate and change approaches to eliminate problems.
Los Átomos de Jotai Son Simplemente Funciones
React Day Berlin 2022React Day Berlin 2022
22 min
Los Átomos de Jotai Son Simplemente Funciones
Top Content
State management in React is a highly discussed topic with many libraries and solutions. Jotai is a new library based on atoms, which represent pieces of state. Atoms in Jotai are used to define state without holding values and can be used for global, semi-global, or local states. Jotai atoms are reusable definitions that are independent from React and can be used without React in an experimental library called Jotajsx.
Depuración de JS
React Summit 2023React Summit 2023
24 min
Depuración de JS
Top Content
Debugging JavaScript is a crucial skill that is often overlooked in the industry. It is important to understand the problem, reproduce the issue, and identify the root cause. Having a variety of debugging tools and techniques, such as console methods and graphical debuggers, is beneficial. Replay is a time-traveling debugger for JavaScript that allows users to record and inspect bugs. It works with Redux, plain React, and even minified code with the help of source maps.
El Epic Stack
React Summit US 2023React Summit US 2023
21 min
El Epic Stack
Top Content
This Talk introduces the Epic Stack, a project starter and reference for modern web development. It emphasizes that the choice of tools is not as important as we think and that any tool can be fine. The Epic Stack aims to provide a limited set of services and common use cases, with a focus on adaptability and ease of swapping out tools. It incorporates technologies like Remix, React, Fly to I.O, Grafana, and Sentry. The Epic Web Dev offers free materials and workshops to gain a solid understanding of the Epic Stack.
Una Mirada al Futuro del Desarrollo Web en 2025
JSNation US 2024JSNation US 2024
32 min
Una Mirada al Futuro del Desarrollo Web en 2025
Top Content
Today, Wes Boss introduces the new features of the web, including customizable select and temporal, a standardized API for working with dates, time, and duration. The current date API in JavaScript has some problems related to time zones and date manipulation. With the temporal API, you can create dates without a time zone, specify dates without a year, and create durations without being attached to a specific date. The API also provides features for finding the difference between two dates. Invokers is a declarative click handlers API that eliminates the need for JavaScript. Speculation API enables pre-rendering and pre-loading of pages, improving performance. The CSS Anchor API allows positioning elements based on another element's location. Web components are encapsulated, framework-agnostic, and easy to use, offering a standardized approach for building reusable UI components. Building media UI components, like video players, is made easier with web components like Shoelace. Transformers JS allows running AI models in JavaScript for tasks like emotion detection and background removal. Python doesn't run in the browser, but JavaScript does. Small AI models can be loaded and executed faster in the browser using technologies like WebGPU. Animate height auto transition using calc size. Apply starting styles to elements for smooth animations. Use Vue transition for CSS and JavaScript animations. Syntax website with Vue transition for smooth page transitions. CSS relative colors allow for lighter or darker shades. Scope CSS ensures styles only apply to specified div containers. Web primitives facilitate modern JavaScript code. You can create web requests and receive web responses using the same primitives on both the client and server. There are many new web standards that work everywhere and frameworks like Hano and Nitro are built upon them. The select and Popover elements are accessible by default. Most of the discussed features will be available in all browsers by 2025. The future of web development with AI is uncertain, but web developers should embrace AI tools to improve efficiency. Implicit CSS lazy loading depends on whether it's prefetching or pre-rendering. Wes Boss discusses the specific features he is excited about in web development, including starting style, calc auto, and allowed discrete. He shares his preferred way of staying informed on new web development discoveries, emphasizing the importance of being part of the community and keeping up with industry discussions. Wes also mentions reading W3C meeting notes and recommends following the Twitter account Intent2Ship to stay updated on upcoming CSS features. Lastly, he discusses the potential impact of the new Scope CSS feature on developers' management of styles.
El Ascenso del Ingeniero de IA
React Summit US 2023React Summit US 2023
30 min
El Ascenso del Ingeniero de IA
Top Content
The rise of AI engineers is driven by the demand for AI and the emergence of ML research and engineering organizations. Start-ups are leveraging AI through APIs, resulting in a time-to-market advantage. The future of AI engineering holds promising results, with a focus on AI UX and the role of AI agents. Equity in AI and the central problems of AI engineering require collective efforts to address. The day-to-day life of an AI engineer involves working on products or infrastructure and dealing with specialties and tools specific to the field.

Workshops on related topic

React, TypeScript y TDD
React Advanced 2021React Advanced 2021
174 min
React, TypeScript y TDD
Top Content
Featured Workshop
Paul Everitt
Paul Everitt
ReactJS es extremadamente popular y, por lo tanto, ampliamente soportado. TypeScript está ganando popularidad y, por lo tanto, cada vez más soportado.

¿Los dos juntos? No tanto. Dado que ambos cambian rápidamente, es difícil encontrar materiales de aprendizaje precisos.

¿React+TypeScript, con los IDEs de JetBrains? Esa combinación de tres partes es el tema de esta serie. Mostraremos un poco sobre mucho. Es decir, los pasos clave para ser productivo, en el IDE, para proyectos de React utilizando TypeScript. En el camino, mostraremos el desarrollo guiado por pruebas y enfatizaremos consejos y trucos en el IDE.
Masterclass Web3 - Construyendo Tu Primer Dapp
React Advanced 2021React Advanced 2021
145 min
Masterclass Web3 - Construyendo Tu Primer Dapp
Top Content
Featured Workshop
Nader Dabit
Nader Dabit
En esta masterclass, aprenderás cómo construir tu primer dapp de pila completa en la blockchain de Ethereum, leyendo y escribiendo datos en la red, y conectando una aplicación de front end al contrato que has desplegado. Al final de la masterclass, entenderás cómo configurar un entorno de desarrollo de pila completa, ejecutar un nodo local e interactuar con cualquier contrato inteligente usando React, HardHat y Ethers.js.
Fundamentos de Remix
React Summit 2022React Summit 2022
136 min
Fundamentos de Remix
Top Content
Workshop
Kent C. Dodds
Kent C. Dodds
Construir aplicaciones web modernas está lleno de complejidad. Y eso solo si te molestas en lidiar con los problemas
¿Cansado de conectar onSubmit a las API del backend y asegurarte de que tu caché del lado del cliente se mantenga actualizada? ¿No sería genial poder utilizar la naturaleza global de CSS en tu beneficio, en lugar de buscar herramientas o convenciones para evitarla o trabajar alrededor de ella? ¿Y qué te parecería tener diseños anidados con una gestión de datos inteligente y optimizada para el rendimiento que simplemente funciona™?
Remix resuelve algunos de estos problemas y elimina completamente el resto. Ni siquiera tienes que pensar en la gestión de la caché del servidor o en los conflictos del espacio de nombres global de CSS. No es que Remix tenga APIs para evitar estos problemas, simplemente no existen cuando estás usando Remix. Ah, y no necesitas ese enorme y complejo cliente graphql cuando estás usando Remix. Ellos te tienen cubierto. ¿Listo para construir aplicaciones más rápidas de manera más rápida?
Al final de esta masterclass, sabrás cómo:- Crear Rutas de Remix- Estilizar aplicaciones de Remix- Cargar datos en los cargadores de Remix- Mutar datos con formularios y acciones
Vue3: Desarrollo Moderno de Aplicaciones Frontend
Vue.js London Live 2021Vue.js London Live 2021
169 min
Vue3: Desarrollo Moderno de Aplicaciones Frontend
Top Content
Workshop
Mikhail Kuznetsov
Mikhail Kuznetsov
Vue3 fue lanzado a mediados de 2020. Además de muchas mejoras y optimizaciones, la principal característica que trae Vue3 es la API de Composición, una nueva forma de escribir y reutilizar código reactivo. Aprendamos más sobre cómo usar la API de Composición de manera eficiente.

Además de las características principales de Vue3, explicaremos ejemplos de cómo usar bibliotecas populares con Vue3.

Tabla de contenidos:
- Introducción a Vue3
- API de Composición
- Bibliotecas principales
- Ecosistema Vue3

Requisitos previos:
IDE de elección (Inellij o VSC) instalado
Nodejs + NPM
Desarrollando Blogs Dinámicos con SvelteKit & Storyblok: Una Masterclass Práctica
JSNation 2023JSNation 2023
174 min
Desarrollando Blogs Dinámicos con SvelteKit & Storyblok: Una Masterclass Práctica
Top Content
WorkshopFree
Alba Silvente Fuentes
Roberto Butti
2 authors
Esta masterclass de SvelteKit explora la integración de servicios de terceros, como Storyblok, en un proyecto SvelteKit. Los participantes aprenderán cómo crear un proyecto SvelteKit, aprovechar los componentes de Svelte y conectarse a APIs externas. La masterclass cubre conceptos importantes incluyendo SSR, CSR, generación de sitios estáticos y despliegue de la aplicación usando adaptadores. Al final de la masterclass, los asistentes tendrán una sólida comprensión de la construcción de aplicaciones SvelteKit con integraciones de API y estarán preparados para el despliegue.
0 to Auth in an hour with ReactJS
React Summit 2023React Summit 2023
56 min
0 to Auth in an hour with ReactJS
Top Content
WorkshopFree
Kevin Gao
Kevin Gao
La autenticación sin contraseña puede parecer compleja, pero es simple agregarla a cualquier aplicación usando la herramienta adecuada. Hay múltiples alternativas que son mucho mejores que las contraseñas para identificar y autenticar a tus usuarios, incluyendo SSO, SAML, OAuth, Magic Links, One-Time Passwords y Authenticator Apps.
Mientras abordamos aspectos de seguridad y evitamos errores comunes, mejoraremos una aplicación JS de pila completa (Node.js backend + React frontend) para autenticar usuarios con OAuth (inicio de sesión social) y One Time Passwords (correo electrónico), incluyendo:- Autenticación de usuario - Gestionar interacciones de usuario, devolviendo JWTs de sesión / actualización- Gestión y validación de sesiones - Almacenar la sesión de manera segura para solicitudes posteriores del cliente, validando / actualizando sesiones- Autorización básica - extrayendo y validando reclamaciones del token de sesión JWT y manejando la autorización en flujos de backend
Al final de la masterclass, también tocaremos otros enfoques de implementación de autenticación con Descope - usando SDKs de frontend o backend.