Chrome DevTools 2024: Debugging and Performance Optimization for React Developers

This ad is not shown to multipass and full ticket holders
JSNation US
JSNation US 2025
November 17 - 20, 2025
New York, US & Online
See JS stars in the US biggest planetarium
Learn More
In partnership with Focus Reactive
Upcoming event
JSNation US 2025
JSNation US 2025
November 17 - 20, 2025. New York, US & Online
Learn more
Bookmark
Rate this content

Prepárate para un emocionante viaje a través de lo último en Chrome DevTools y React DevTools mientras nos sumergimos en el Estado de la Unión para 2024. Exploraremos las poderosas herramientas y características que continúan empoderando a los desarrolladores para crear experiencias web de alto rendimiento. También tocaremos lo último en depuración de React, incluyendo actualizaciones como el soporte de React Compiler. Ya seas un usuario veterano o nuevo en la magia de DevTools, esta sesión te equipará con consejos prácticos y conocimientos para mejorar tu proceso de desarrollo.

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

Addy Osmani
Addy Osmani
30 min
19 Nov, 2024

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Hola a todos, en esta charla aprendemos sobre React y Chrome DevTools. Exploramos el nuevo panel de AI Assistant en DevTools que ayuda con el ajuste de la UI. React DevTools ahora soporta el modelo Gemini AI para la corrección de errores. La extensibilidad es importante y React DevTools tiene características como actualizaciones destacadas y componentes del servidor. También aprendemos sobre el registro del servidor en la consola del navegador y el cambio de fallbacks de suspense. Browser DevTools permite experimentar con sobrescrituras locales y mejorar el contraste de color. Las características avanzadas incluyen la sobrescritura de encabezados, la personalización del panel de red y las herramientas de rendimiento. También discutimos Core Web Vitals, la optimización de páginas y la depuración de la UI con DevTools. Hay consejos divertidos para mejorar las animaciones y el flujo de trabajo de registro. La charla termina con preguntas y respuestas y compartiendo/eliminando características basadas en los comentarios de los usuarios.

1. Introduction to React and Chrome DevTools

Short description:

Hola a todos, ¿saben cómo es cuando estás trabajando en un componente de React y piensas para ti mismo, sabes, tal vez esto podría ser un poco mejor? Quería mostrarte en qué pasé mi noche. Como desarrolladores web, a menudo lidiamos con la complejidad a diario. En Chrome DevTools, hemos agregado un nuevo panel de Asistente de IA para ayudarte con la interfaz de usuario. Puedes chatear con nuestro modelo de IA Gemini y pedirle que te ayude a ajustar estilos. Ofrece información, proporciona soluciones y ayuda a ajustar estilos y obtener información sobre nuestras páginas. También tenemos una aplicación de ejemplo de React Stocks que encuentra errores al ver más detalles sobre una acción.

Hola a todos, ¿saben cómo es cuando estás trabajando en un componente de React y tú piensas para ti mismo, sabes, tal vez esto podría ser un poco mejor. Tuve esa experiencia con mi diapositiva de portada anoche, no dormí mucho, pero decidí jugar con esto un poco y quería mostrarte en qué pasé mi noche. Espero que valga la pena. Es solo una pequeña cosa breve.

Así que vamos a refrescar esto y presionar play. Si depurar es el proceso de eliminar errores, ¿significa eso que programar es el proceso de ponerlos? ¿Qué hay de nuevo en React y Chrome DevTools? Creo que las buenas herramientas son los socios silenciosos en cada historia de éxito. Me gustaría decir que la calidad de tus resultados a menudo depende de la calidad de las herramientas que usas. Y por eso es realmente importante asegurarse de que estás eligiendo las que te preparan para el éxito.

Ahora, como desarrolladores web, a menudo lidiamos con la complejidad a diario. Y en Chrome DevTools, nos hemos estado preguntando si la IA puede ayudar a transformar algo de esa complejidad con la que nos encontramos al depurar en algo de claridad al agregarla conscientemente donde creemos que puede agregar valor. ¿Qué tal si te ayuda a depurar y ajustar estilos? Así que acabamos de agregar un nuevo panel de Asistente de IA a DevTools para ayudarte con la interfaz de usuario. Y puedes chatear con nuestro modelo de IA Gemini. Así que aquí, lo que estamos haciendo es seleccionar un elemento. Puedo usar el panel de Asistencia de IA. Y puedo pedirle a la IA que haga cosas como ayudarme a ajustar estilos. En este caso, le estoy pidiendo que agregue un degradado al texto de ética sonora. Y va a ir. Está tratando de averiguar la mejor manera de abordar esto. Me dará alguna idea de cómo podría hacerlo. Así que me dará una solución. Y también me dará este pequeño botón, continuar, que me permite aplicarlo. Ahora casi lo tiene bien, pero parece que se necesita un poco de recorte de texto aquí. Así que solo vamos a decirle que tal vez necesitamos ajustar eso. Y en solo un segundo, presionamos continuar, y boom. Así que nos ayuda con eso. También podemos seguir iterando en esto, haciendo cosas como pedirle que ayude a hacerlo resaltar o hacerlo brillar un poco más. Y esto solo cambia cómo abordamos cosas como ajustar estilos y obtener información sobre nuestras páginas. ¿Qué tal explicar errores? Ahora tenemos una aplicación de ejemplo de React Stocks aquí. Está usando algunos datos. Y cuando hago clic en botones para ver más detalles sobre una acción, obtengo un error en la consola.

2. AI in the Console & React DevTools Extensibility

Short description:

Puedo usar IA en la consola para obtener un resumen del problema y sugerir diferentes formas de resolverlo. Con el nuevo soporte de Gemini en DevTools, puedo explicar el error y obtener correcciones. Ahora puedes hacer preguntas sobre tus archivos fuente, solicitudes de red o gráficos de llamas en el panel de rendimiento. A continuación, la extensibilidad es importante. React DevTools tiene una función de resaltar actualizaciones y admite componentes de servidor. Ayuda a identificar renderizados innecesarios y distinguir entre componentes de cliente y servidor.

No estoy completamente seguro de por qué, pero puedo usar IA en la consola también para obtener un resumen tanto del problema basado en todo el contexto que está disponible para nosotros en DevTools desde el error de la fuente. Podemos sugerir algunas formas diferentes de resolver este problema. Así que tienes que hacer algunas correcciones a la lógica de manejo de detalles de acciones aquí. Pero afortunadamente, con el nuevo soporte de Gemini en DevTools, puedo explicar el error y obtener algunas correcciones que puedo aplicar de inmediato.

¿Qué viene después? Bueno, justo esta semana, después de la asistencia de IA, hemos intentado hacer esto aún más poderoso. Ahora puedes hacer preguntas sobre tus archivos fuente y el panel de fuentes, solicitudes de red y red, o incluso preguntarle sobre tus gráficos de llamas en el panel de rendimiento. Así que esperamos que puedas obtener respuestas instantáneas y esto te ayude en tu viaje de depuración. Se ve un poco así. Básicamente incluimos ese archivo o ese recurso como parte del contexto y puedes comenzar a interactuar con él junto con otros contextos que podemos incluir.

A continuación, extensibilidad. Así que la extensibilidad es un principio realmente importante para nosotros en Chrome. Y hay muchas extensiones geniales de Chrome DevTools que realmente ayudan a amplificar lo que es posible. Y eso incluye React DevTools. Así que algunos consejos y actualizaciones aquí. Primer consejo, realmente me encanta usar la función de resaltar actualizaciones en React DevTools. Así que tenemos una aplicación de React aquí. Es una aplicación de películas. Voy a ir al panel de componentes. Tengo React DevTools instalado. Y solo voy a configuraciones y puedo marcar resaltar actualizaciones cuando los componentes se renderizan. Y esto solo me ayuda a identificar renderizados innecesarios para que pueda optimizar el rendimiento de mi aplicación un poco más.

Verás estos simplemente brillando mientras interactuamos con la interfaz de usuario. A continuación, React DevTools ahora admite componentes de servidor a partir de la versión 6 y superiores. Escuché a una persona emocionada al respecto. Unos pocos más. Muy bien. Así que los componentes de servidor ahora son visibles en el árbol de componentes de DevTools. Se muestran con una insignia especial de servidor para distinguirlos de los componentes de cliente. Y esto te ayuda a identificar qué partes de tu aplicación están ejecutándose en el cliente o el servidor. Lo he encontrado realmente útil.

3. Server Logging & React DevTools Features

Short description:

Los desarrolladores de Next.js ahora pueden acceder al registro del servidor en la consola del navegador. React DevTools permite alternar los fallbacks de suspense para actualizar los estilos de la pantalla de carga sin activar el estado de carga. El soporte de React Compiler en DevTools incluye insignias de memo y la inspección del estado y las props de hooks personalizados con useDebugValue.

Si eres un desarrollador de Next.js, ahora también puedes obtener registros del servidor. Así que console log funciona de la misma manera que lo haría en el navegador, pero con una etiqueta de servidor. Y eso solo significa que puedes ver los registros del lado del servidor directamente dentro de la consola del navegador para que puedas depurar esas experiencias de componentes del servidor un poco más.

Otro consejo para ti, usando React DevTools, también puedes alternar tus fallbacks de suspense. Tiende a encontrar esto útil si quiero actualizar y refinar los estilos de mis pantallas de carga sin tener que activar repetidamente el estado de carga en mi aplicación. Así que aquí puedes ver esto en acción. Simplemente hacemos clic en el botón único y podemos ver esa experiencia de pantalla de carga. Luego puedo inspeccionarlo usando elementos y ajustarlo, y eso puede ayudar a mejorar tu proceso de iteración un poco más.

Acabo de mencionar los componentes del servidor de React. El soporte de React Compiler también está disponible ahora en React DevTools. Así que esto incluye insignias de memo para componentes que son optimizados por React Compiler. Y me encantan estas insignias porque aunque parecen una cosa pequeña, realmente pueden ayudarte a identificar rápidamente qué componentes han sido optimizados, potencialmente ayudándote a centrarte en los lugares que no lo han sido. Si eres alguien que disfruta escribiendo hooks personalizados, los DevTools de React DevTools, por supuesto, también te ayudan a inspeccionar tu estado actual y las props de hooks en tus componentes que pueden ser útiles para depurar situaciones complejas de gestión de estado. Y otro consejo rápido, puedes usar useDebugValue. Es un hook para mostrar información de depuración personalizada, y es especialmente útil si eres alguien que disfruta creando y usando hooks personalizados en sus aplicaciones. Sé que a muchas personas les gusta hacer eso.

4. Experimenting with Browser DevTools

Short description:

Aprende cómo experimentar libremente usando las DevTools del navegador sin tocar el código original. Explora las anulaciones locales para cambios más potentes y mejora el contraste de color con compatibilidad AA o AAA. Persiste las ediciones usando anulaciones locales y guarda los cambios en una ubicación de archivo de tu elección.

A continuación, quiero hablar sobre algunas formas en las que puedes experimentar libremente sin necesariamente tocar el código original en tus aplicaciones. Así que todos recuerdan la primera vez que usaron las DevTools del navegador, ya sea Chrome DevTools u otra cosa, para simplemente inspeccionar una página y cambiar algún texto. Tengo un colega, Chris Bensell, que solía trabajar en Chrome. Él presentó las DevTools a su hijo de cinco años cuando estaban tratando de pedir comida de Chipotle. Y salió tan bien como se podría esperar.

Así que esto es genial, pero no persiste. Quiero hablar sobre las anulaciones locales, que son una versión aún más poderosa de esto. Antes de hacer eso, hablemos rápidamente sobre el contraste de color. Me encanta el sitio del libro de Stripe. Es una de mis experiencias favoritas. Soy un gran lector. Pero noto que al desplazarme por aquí, el contraste de color no es tan bueno como podría ser. Vemos algunos naranjas sobre azules. Vemos algunos naranjas sobre verdes. No es muy fácil de leer esto.

Ahora, dentro de DevTools, en realidad tenemos funcionalidad para ayudarte a corregir automáticamente los problemas de contraste de color para que sean compatibles con AA o AAA. Simplemente hacemos clic en ese botón, y hace que el texto sea más oscuro y un poco más accesible amigable. No tienes que pensarlo mucho tú mismo, pero también puedes ajustar estos valores si lo deseas. Ahora, si recargara esta página, estos cambios, por supuesto, desaparecerían porque no estoy publicando en producción. No tengo acceso mágico a Stripe. Pero DevTools te da algunos superpoderes para ayudar aquí. Ahora, si quisiéramos persistir estas ediciones, podríamos usar anulaciones locales. Básicamente, lo que nos permiten hacer es hacer un ajuste y permitir que DevTools guarde esos cambios en una ubicación de archivo de tu elección para que cada vez que vuelvas a ese dominio o esa página, cargue esa versión en su lugar.

Así que básicamente lo que quiero hacer aquí es aplicar esas mismas correcciones de contraste de color. Y lo que voy a hacer es dentro de aquí, voy a ir a fuentes, voy a habilitar anulaciones locales, y lo que esto me permitirá hacer es comenzar a hacer cambios. Así que quiero averiguar dónde necesito hacer estos cambios. Parece que va a estar en este archivo CSS. Voy a tomar ese valor fijo para mi contraste de color. Voy a guardarlo. Y lo que queremos es que cuando recarguemos esta página, nos muestre texto blanco en lugar de naranja.

5. Advanced Overrides and Header Control

Short description:

Aprende cómo anular contenido y encabezados de diferentes tipos de solicitudes, incluyendo XHR, fetch y encabezados de respuesta HTTP. Simula respuestas de API y experimenta con diferentes escenarios para depurar tu página. Personaliza y establece tus propios encabezados para pruebas locales y exploración.

Y ahí vamos. Esto se ha persistido. Así que puedes editar efectivamente páginas en vivo y guardarlas localmente, lo que abre todo tipo de casos de uso útiles.

Ahora hemos estado construyendo sobre la función de anulaciones en los últimos años con algunas adiciones de valor que creemos que podrías encontrar útiles. La primera es que ahora puedes anular el contenido de las solicitudes XHR y fetch además de sus cuerpos de respuesta. Con esos tipos de anulaciones, puedes simular cosas como respuestas de API para depurar tu página, incluso si tu back end y tu API no están listos aún o no tienes acceso a ellos.

Soportamos anulaciones para varios tipos de solicitudes diferentes, incluyendo imágenes, fuentes, XHR, scripts. Y desactivamos las opciones de contenido anulado si estás inspeccionando esto en diferentes lugares en DevTools. Así que eso es anular el contenido de las solicitudes XHR y fetch. También ahora te permitimos anular los encabezados de respuesta HTTP. Así que si alguna vez has querido experimentar localmente con los encabezados de respuesta, DevTools ahora puede anular esos encabezados, incluyendo cores. También te dejamos establecer tus propios encabezados personalizados. Así que si quieres jugar con esto localmente, ahora tienes mucho más poder y capacidad para hacerlo.

6. Advanced Network Panel and Performance Tooling

Short description:

Aprende cómo anular valores de encabezados y ocultar solicitudes de extensiones de Chrome en el panel de red. Obtén códigos de estado HTTP legibles y fuerza un estado de página enfocado para un desarrollo más fácil. Explora herramientas de rendimiento y monitorea Core Web Vitals en el panel de rendimiento.

Si te encuentras navegando por algunos documentos y hablan sobre, ya sabes, valores específicos de encabezados, puedes pegar cadenas enteras para anularlos. No tienes que necesariamente analizar y descomponer el texto tú mismo. Nosotros haremos el trabajo duro de interpretarlos por ti.

Ahora, ya que estamos hablando del panel de red, algunos consejos rápidos aquí. Añadimos una casilla de verificación para ayudarte a centrarte en lo que más te importa. Queremos ocultar las solicitudes de extensiones de Chrome. Muchos de nosotros usamos extensiones de Chrome, pero no necesariamente queremos ver como, oye, están cargando su propio código de React o su propio código de biblioteca. Así que si solo marcas esta casilla de ocultar URLs de extensiones, lo que hará es dejarte ver tus propias solicitudes. Y tiendo a usar mucho esta función estos días.

También hemos añadido ahora al panel de red la capacidad de obtener códigos de estado HTTP legibles. Así que ya no tienes que memorizar todos estos tú mismo. Mostraremos texto legible junto a ellos. Así que para 204, por ejemplo, diremos sin contenido. Y esto te ayuda a evitar tener que buscar documentos tú mismo.

Otro consejo aleatorio aquí. Así que si eres alguien que trabaja mucho con entradas, podrías saber que si cambias el enfoque de una página a las herramientas de desarrollo, a veces los elementos superpuestos se ocultarán si son activados por el enfoque. Y te facilita emular una página enfocada. Así que puedes simplemente presionar eso y forzará ese estado, lo que significa que puedes ir y simplemente comenzar a ajustar los estilos de cualquier componente de entrada personalizado en el que hayas estado trabajando sin tener que lidiar con mucho forzar el estado tú mismo en tus componentes. Esto ha sido realmente útil para YouTube. También ha sido útil para muchos equipos que están usando React y otros tipos de bibliotecas.

A continuación, me encantaría hablar un poco sobre el rendimiento. Así que digo que los datos de laboratorio te muestran lo que es posible y lo que es accionable. Los datos del mundo real a menudo te muestran lo que es real. Hemos estado tratando de hacer eso más accionable en los últimos años también. Y DevTools ahora intenta ayudarte a optimizar para ambas cosas. Así que ampliemos y hablemos sobre lo nuevo en herramientas de rendimiento. Y también hablaré un poco sobre el rendimiento de React.

Así que Chrome DevTools ahora te permite monitorear tu rendimiento local y de usuario real, tus Core Web Vitals, a través del panel de rendimiento. Solía ser un panel completamente en blanco, pero ahora te damos muchas ideas ricas allí por defecto. Si abres el panel, inmediatamente ves cómo se desempeña tu experiencia local.

7. Enhancing Performance Analysis and Collaboration

Short description:

Accede al rendimiento local de Core Web Vitals y obtén recomendaciones en métricas en vivo. Ideas consolidadas y análisis guiado en el panel de rendimiento. Anotación de trazas simplificada y Bundle Analyzer integrado en DevTools.

No es necesario realizar grabaciones allí. Y como hemos aprendido a través de esfuerzos como la extensión Web Vitals, tener acceso al rendimiento local de Core Web Vitals puede ser un verdadero cambio de juego para las personas. Así que hemos tomado todo lo que hemos aprendido de algunos de esos esfuerzos a lo largo de los años y realmente hemos intentado asegurarnos de que el panel de rendimiento tenga todo esto por defecto.

También hemos estado agregando recientemente recomendaciones en nuestras métricas en vivo como parte de este trabajo. Así que nuestras métricas en vivo pueden proporcionar recomendaciones específicas de métricas para ayudarte a configurar tu entorno de desarrollo o guiarte en una dirección que tal vez no sabías que deberías estar enfocado. Por ejemplo, tus usuarios reales pueden tener interacciones más lentas porque tienen CPUs más lentas, o pueden tener una abundancia de pantallas más pequeñas, lo que puede cambiar cómo piensas sobre una métrica como largest contentful paint.

Así que ahora incluimos muchas recomendaciones concretas aquí si tienes configurados tus datos de campo reales. Para tus datos de laboratorio, también ahora te permitimos obtener ideas directamente dentro del panel de rendimiento. Así que puedes obtener ideas accionables dentro de nuestra nueva subpestaña de ideas. Lo que te permite hacer es obtener ideas consolidadas de Lighthouse así como de nuestro panel de ideas de rendimiento anterior.

Ahora todo está en un solo lugar, e intenta proporcionarte un análisis guiado e ideas accionables sobre problemas de rendimiento que podrían estar ralentizando tu experiencia. Así que te damos cosas como desgloses de largest contentful paint, como cuánto de eso es tu servidor, cuánto de eso son otras cosas. Te damos culpables de cambio de diseño, ideas de solicitudes que bloquean el renderizado. Hay un montón de cosas con las que intentamos ayudarte allí. Ahora, otra solicitud que la gente ha tenido con el tiempo es que a menudo el rendimiento no es solo cosa de una persona sino que es algo que abordas como equipo o algo que a menudo quieres compartir tus trazas de rendimiento con otras personas. Y así, una de las cosas en las que hemos estado trabajando recientemente es la anotación de trazas. Esto es realmente poderoso. Lo que básicamente te da es una nueva pestaña de anotaciones que simplifica el proceso de crear notas para tus exploraciones de trazas. Hace que sea más fácil hacer cosas como colaborar. Puedes hacer cosas como etiquetar y conectar eventos con flechas. Puedes resaltar rangos de tiempo directamente en la traza misma.

Y luego puedes guardar, puedes compartir esto con otras personas. Si eres un experto en rendimiento o tienes mentalidad de rendimiento, podrías saber que anteriormente la gente tenía que hacer capturas de pantalla y hacer todas estas anotaciones por sí mismos. También hay personas que solían imprimir esto y simplemente hacer anotaciones.

8. Analyzing JavaScript Bundles and Optimizing Pages

Short description:

Accede a Bundle Analyzer en DevTools para analizar paquetes de JavaScript y optimizar tus páginas.

Así que, con suerte, esto ayudará si te importa el rendimiento.

Otro consejo rápido, sé que muchas personas echan un vistazo a cosas como Webpack Bundle Analyzer para obtener información sobre lo que está sucediendo en sus paquetes. DevTools en realidad tiene un Bundle Analyzer incorporado. Si usas Lighthouse, en realidad tenemos una pequeña función de mapa de árbol de Lighthouse que proporciona una representación gráfica de tus paquetes de JavaScript.

Así que vamos a usar esto con BlueSky. Y lo que vamos a hacer es que hemos tomado un rastro de Lighthouse. Solo voy a hacer clic en Ver Mapa de Árbol. Esto nos dará esa representación gráfica. Así que esto es todo lo que está en el paquete o paquetes, más bien, que se envían al usuario. Podemos inspeccionar fragmentos individuales. Podemos hacer cosas como echar un vistazo a los bytes no utilizados en todo tu gráfico. Puedes ver que hay ciertas dependencias aquí. Cosas como ProseMirror que tal vez no se estén utilizando completamente en la carga inicial y que potencialmente podrían diferirse. Y puedes usar esta vista solo para darte un poco más de información sobre cómo puedes optimizar tus páginas.

9. Core Web Vitals and Input Responsiveness

Short description:

Hablar sobre Core Web Vitals y la capacidad de respuesta de entrada en páginas web. INP es la última métrica de interacción disponible.

Voy a hablar sobre Cora Vitals por un momento, pero quería compartir esto. Este es probablemente mi ejemplo favorito de un cambio de diseño de Lee Robinson. Esto me pasa mucho. Básicamente intentas hacer clic en un botón y oh. No me pasa con misiles, solo para ser claro, pero como al comprar cosas.

Ahora no voy a hablar tanto sobre el cambio de diseño, pero sí quiero hablarte muy rápidamente sobre la capacidad de respuesta de entrada. En pocas palabras, la capacidad de respuesta de entrada significa qué tan rápido las páginas web pueden responder a la entrada del usuario. Así que cuando un usuario interactúa y luego puede ver los resultados de esa interacción. Te daré un ejemplo aquí. Podría ser como si estuvieras abriendo un menú de un sitio. ¿Cuánto tiempo tarda en aparecer y el usuario puede hacer algo en absoluto? O si hago clic en un botón para agregar un artículo a mi carrito en un sitio de compras, ¿cuánto tiempo después de interactuar puedo realmente ver que mi artículo fue agregado? Es una métrica matizada. Así que INP, interacción al siguiente panel, es realmente la última métrica de interacción disponible para la web. Las interacciones pueden ser cosas como clips, una tecla arriba, o un puntero arriba. Se divide en tres fases que pueden ayudarte a orientar los esfuerzos de optimización.

10. Veo Case Study: Optimizing React App

Short description:

Veo hizo su aplicación de React un 69% más rápida al actualizar a React 18 y abordar problemas de renderización y analítica. Prestar atención a los pequeños detalles lleva a una experiencia de usuario sin problemas.

Quería hablar sobre este estudio de caso realmente bueno que vi. Así que Veo es una gran aplicación de React que ha estado optimizando para su latencia de interacción. De hecho, pudieron hacer su aplicación un 69% más rápida en lo que respecta a las interacciones. {{^}}Quería repasar muy rápidamente algunas de las cosas que hicieron.

Su primer gran logro realmente vino de actualizar a versiones más recientes de React. El beneficio clave de React 18 fue realmente la renderización concurrente. Así que cosas como tareas de alta prioridad, como la entrada del usuario, podrían interrumpir la renderización. Ese único cambio por sí solo pudo darles una mejora del 46% en su INP en el escritorio y mejoras de tamaño similar en dispositivos móviles. La idea aquí es que a veces incluso los cambios a nivel de framework pueden tener mucho impacto. Así que considera eso cuando estés considerando actualizar o no.

La analítica y el seguimiento de eventos también eran un área que les estaba causando lentitud. Estaban creando tareas largas que realmente bloqueaban el hilo principal. En lugar de eliminar completamente cualquiera de esos, porque a menudo las empresas no pueden simplemente eliminarlos, implementaron una solución más simple. Optaron por ceder al hilo principal entre diferentes operaciones. Puedes hacer esto usando cosas como la API de scheduler. Eso dividió sus tareas largas y mejoró el INP en otro 19%. La clave de aprendizaje allí es que a veces incluso las características básicas, usando una nueva API que está disponible en la plataforma web, realmente pueden ayudar a resolver problemas complejos de rendimiento.

La pieza final fue abordar los problemas de renderización de React. Identificaron algunos problemas clave diferentes. Cosas como descomponer hooks personalizados complejos. Estábamos hablando de hooks anteriormente. Descomponer algunos de esos hooks complejos en más simples. Reemplazar algunas de las APIs de React router con alternativas, como window.location donde podían. Y luego mejorar cosas como la memoización de selectores de Redux. Eso les dio otra mejora del 45% en INP. Así que en general eso es lo que llevó a ese 69%. Este es un estudio de caso realmente genial. Muy, muy detallado. Si estás interesado en el rendimiento, échale un vistazo. Ahora me gusta decir que una experiencia de usuario sin problemas a menudo proviene de prestar atención a los pequeños detalles.

11. Debugging UI with DevTools

Short description:

DevTools puede ayudarte a obtener los detalles correctos al depurar la UI. Reconociendo a los desarrolladores que impulsan la web hacia adelante. Ejemplos divertidos de resolución creativa de problemas. Usando DevTools para inspeccionar botones y elementos. Haciendo más difícil darse de baja de boletines. Haciendo que los usuarios reconsideren eliminar sus cuentas. Usando DevTools en el panel de elementos para forzar acciones.

Y DevTools puede ayudarte a menudo a obtener estos detalles correctos. Me encantaría guiarte a través de algunas de mis características favoritas para depurar la UI. Pero antes de eso, solo quería reconocer que realmente me encanta cada vez que veo a desarrolladores tratando de impulsar la web hacia adelante. Y he visto algunos ejemplos divertidos de donde han estado siendo, digamos, creativos.

Así que, por ejemplo, darse de baja de boletines suele ser un poco demasiado fácil. Sé que no quiero nada más que esto sea interrumpido. Afortunadamente, DevTools puede venir al rescate aquí. Así que podemos ir e inspeccionar. Esto es genial. Podemos inspeccionar ese botón. $0 te dará una referencia al último elemento. Así que solo vamos a $0 allí. Vamos a hacer clic y... Oh. Estamos tan cerca. Intentemos con otro.

Así que en algunos casos es demasiado fácil para los usuarios eliminar sus cuentas. Quieres que se queden un poco más, ¿verdad? Entonces, ¿qué tal si los hacemos reconsiderar? Así que intentemos esto. Podemos hacerlo bien. Solo hay tres opciones aquí. Intentemos eliminar. Oh. Muy bien. Usemos DevTools. Así que panel de elementos. Solo usemos la búsqueda aquí para buscar un botón. Y podemos hacer algo como forzar esto, estoy seguro. Así que $0 una vez más. Haz clic y... Muy bien.

12. Enhancing Animations with DevTools

Short description:

Ejemplo de control de volumen. Inspector de animaciones de DevTools. Modificación y ajuste de animaciones en tiempo real. El panel de animaciones captura animaciones en progreso. No es necesario actualizar o volver a grabar. Panel potente para reproducir y editar animaciones. Efectos de desplazamiento y transiciones en una aplicación construida con View Transitions y Next.js.

OK. Pudimos eliminar nuestra cuenta. Maravilloso. Un último ejemplo. Control de volumen. Seguramente esto no puede ser interrumpido demasiado. ¿Quién necesita límites?

Así que hay algunas cosas con las que incluso DevTools no puede ayudarte. Para todo lo demás, hacemos nuestro mejor esfuerzo. Me encanta lo interactiva y encantadora que se ha vuelto la web a lo largo de los años. Hemos visto a los desarrolladores seguir invirtiendo en cosas como las animaciones web. Y para complementar este trabajo, necesitan buenas herramientas de animación. Así que DevTools tiene un inspector de animaciones. Te permite hacer cosas como reproducir o ralentizar animaciones, modificar tiempos, retrasos, jugar con duraciones. Y es realmente poderoso para ajustar tus animaciones en tiempo real. Puedes encontrar esto bajo más herramientas.

Así que el panel de animaciones ahora hace una cosa adicional. Este es otro sitio con el que he estado jugando recientemente llamado Wild Things. Una de las razones por las que elegí esto es que puedo desplazarme y verás que tiene algunas animaciones geniales. Así que solo estoy desplazándome y ves estas cosas siendo lanzadas a través de la pantalla. Ahora lo que hace el panel de animaciones ahora es que las animaciones que ya están en progreso, ya capturamos esas. Así que no tienes que actualizar la página, no necesitas volver a grabar nada. Esas ya están esperando por ti. Y puedes reproducirlas, puedes ajustarlas, puedes editar fotogramas clave. Solo estamos tratando de hacer este panel un poco más poderoso para ti.

Ahora esta es una aplicación que construí usando View Transitions y Next.js. Utiliza el trabajo de Next View Transitions de Vercel. Así que tengo algunos efectos de desplazamiento aquí que me encantaría mostrar. Déjame ver si esto va a reproducirse correctamente. Tengo algunos efectos de desplazamiento que hacen la transición entre páginas aquí. Ahora en el inspector de animaciones, lo que puedo hacer es realmente ralentizarlos.

13. Debugging Tools and Fun Logging Tips

Short description:

Depuración de transiciones de vista. Vista 3D de la capa del DOM. Herramienta poderosa para diseñar interacciones. Consejos divertidos para animar tu flujo de trabajo de registro. Estilo CSS e imágenes de fondo en registros de consola. Registro de memes y SVG animados.

Puedo hacer cosas como asegurarme de que se estén reproduciendo correctamente y es generalmente útil para la depuración de transiciones de vista también. Así que si estás usando transiciones de vista en Next, puedes usar este panel también.

Finalmente, hablemos de 3D muy rápidamente. Aunque la mayoría de los desarrolladores entienden conceptualmente cómo los elementos DOM anidados afectan la forma en que el navegador organiza las capas de CSS, el hecho es que el navegador muestra un plano 2D. Sin embargo, DevTools tiene una función que te permite ver la capa del DOM en 3D. Este es el panel de capas menos conocido. Así que vas a más herramientas o a nuestra barra de herramientas y vas a capas. Así que en este caso, esta es una experiencia de paralaje y tengo curiosidad por saber cómo están estructuradas las capas y cómo interactúan mientras me desplazo. Así que aquí tienes una vista 3D. Puedes ver qué es pegajoso, qué no lo es, qué se mueve. Y si estás diseñando interacciones, esto puede ser realmente poderoso para ayudarte a ajustar y refinar esas para obtener la experiencia correcta.

Así que lo último de mi parte, quería cubrir algunos consejos divertidos que pueden ayudar con tu flujo de trabajo de registro. Ahora, los registros de consola con estilo han existido desde siempre. Te ayudan a animar tus mensajes de depuración. Puedes usar especificadores de formato para dar formato a los mensajes de la consola. Aquí hay uno que hice un poco antes. Puedes volverte tan loco como quieras con estos. Puedes usar la tipografía que desees. Ahora me gustaría mostrarte un pequeño truco, porque podemos usar CSS para estilizar cosas en el mensaje de la consola. También podemos hacer cosas divertidas como establecer una imagen de fondo aquí también. Así que puedes registrar memes si quieres. Puedes registrar un montón de diferentes tipos de cosas. También puedes animar SVG en la consola. Y quería mostrarte esto muy rápidamente.

QnA

Q&A and Feature Availability

Short description:

Pregunta sobre la mejor película de Navidad. Introducción de console.Christmas. Animación SVG en DevTools. Prevención del olvido de los toggles de sobrescritura local. Insignias adicionales en DevTools. Disponibilidad de características en versiones de Chrome.

Así que tengo una pregunta para ustedes para terminar esta charla. ¿Cuál es la mejor película de Navidad? Estoy escuchando Elf. Estoy escuchando Elf. Así que vamos a responder a esta pregunta usando una nueva característica que he añadido solo para esta charla llamada console.Christmas. Así que vamos a usar console.Christmas. Y veamos qué tiene que decir console.Christmas. Hubo una persona en la audiencia que acertó. Animé esto yo mismo hace un par de años usando SVG mientras veía Die Hard. Fue construido usando SVG Gator. Me recordó mucho a los días de Flash. Pero puedes usar SVG en línea y CSS para animar SVG en los DevTools. Es realmente, realmente divertido. Esta es una versión simplificada. Se ve muy aproximadamente así. Pero puedes divertirte mucho con el registro. Por favor, hazlo. Así que espero que hayas encontrado esta charla un poco útil. Vamos a depurar la web hacia adelante. He sido Addy Osmani. Gracias.

¿Cómo evitas que los usuarios o desarrolladores olviden que tienen toggles de sobrescritura local? Parece algo que podría olvidarse fácilmente y causar confusión. Esa es una gran pregunta. Añadimos insignias adicionales a diferentes lugares en DevTools. Creo que usamos un color púrpura. Así que puedes saber exactamente qué archivos han sido sobrescritos y detectarlos y diferenciarlos de todo lo demás. Genial.

Siguiente. ¿En qué versión de Chrome están disponibles estas características? La gran mayoría de las cosas de las que hablé hoy están disponibles en Chrome Stable. Las características de IA son principalmente para Chrome Canary.

Sharing and Removing Features

Short description:

Compartir código desde DevTools con privacidad en mente. Facilidad para compartir sobrescrituras y casos de uso. Revisión y eliminación regular de características basadas en la retroalimentación de los usuarios.

Genial. Muy bien. Sigamos adelante. ¿Cómo se comparte tu código desde DevTools cuando presionas Ask AI? Están preocupados por la seguridad de la aplicación y el código propietario. Gran pregunta. Así que cada vez que usas esta función, en realidad tenemos un diálogo de privacidad que te pide que consientas compartir la sesión actual. Así que no persiste en absolutamente todo lo que haces. Dentro de cada sesión, te preguntaremos nuevamente si quieres que compartamos ese contexto. Y generalmente solo compartimos la cantidad mínima de código necesaria para poder ayudar a refinar las respuestas que podemos darte. Así que intentamos construir esto teniendo en cuenta la privacidad. Increíble.

¿Qué tan compartibles son las sobrescrituras para cosas como solicitudes XHR al estilo Postman? ¿Cómo podríamos compartir sobrescrituras entre usuarios? Esa es una gran pregunta. De hecho... Devolveré la pregunta. Me encantaría saber cómo les gustaría a las personas que hagamos eso un poco más fácil. Muy a menudo estos esfuerzos comienzan con simplemente documentar mejor lo que la gente está haciendo. Así que si tienes casos de uso específicos en mente, ponlos en un repositorio de GitHub, crea un nuevo problema en Chromium. Estaríamos encantados de hablar con la gente sobre eso. Asombroso.

Bien. Veamos. ¿Alguna vez eliminan características de DevTools? Lo hacemos. Absolutamente lo hacemos. Así que a veces hay características que se ven increíbles en una pantalla, pero estamos en una conferencia y nos damos cuenta, ya sabes, o las suposiciones que hicimos en ese momento ya no son ciertas, o la UX que pensamos que teníamos tal vez no era la correcta. Para darte un ejemplo de una característica, solíamos tener un inspector de promesas, específicamente para ayudarte a visualizar promesas y simplemente usar la UI para ajustar lo que sucede a lo largo de tu cadena. Y nos dimos cuenta de que en realidad era lo incorrecto. En ese momento terminamos eliminándolo. Regularmente revisamos estas decisiones, así que si alguna vez hay algo que la gente siente que, oye, parece que van a eliminarlo, el panel de capas es en realidad un gran ejemplo.

User Feedback and Memory Consumption

Short description:

La retroalimentación de los usuarios influyó en la decisión de mantener el panel de capas. El consumo de memoria de las nuevas características depende de la complejidad del contenido web. Mantén un ojo en el uso de memoria y contacta a DevTools para asistencia.

La comunidad se opuso fuertemente a que intentáramos eliminar el panel de capas. Pensamos que esto parecía ser solo para expertos, o que había suficiente gente usándolo. Así que siéntete libre de decir si estás usando cosas. Intentamos escuchar. Sí. Estoy emocionado de escuchar eso, porque escuché que el panel de capas iba a desaparecer. Me alegra ver que no es el caso.

Última pregunta. Chrome puede ser bastante intensivo en memoria. ¿Qué tan costosas son estas nuevas características al usarlas? Así que dos respuestas. Hemos estado invirtiendo mucho. Sé que Chrome es muy conocido por todos los memes sobre el consumo de memoria, por supuesto. Hemos estado trabajando mucho a lo largo de los años para intentar mitigar eso tanto como sea posible. De hecho, diría que estamos en un lugar decente ahora en su mayoría. Para estas características específicamente, va a depender del tipo de experiencias que estés construyendo. Así que si estás construyendo algo que usa mucho WebGL, animaciones web muy complejas, muchas y muchas capas diferentes, obviamente eso va a consumir más memoria. Y las herramientas también van a consumir más memoria como resultado. Así que tiendo a recomendar que la gente simplemente mantenga un ojo en su consumo de memoria. Si detectas algún lugar donde parece que DevTools es la causa, estamos encantados de echar un vistazo. Genial. Increíble. Muchas gracias, Addy. Démosle un aplauso a Addy Osmani una vez más.

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

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.
Construyendo Mejores Sitios Web con Remix
React Summit Remote Edition 2021React Summit Remote Edition 2021
33 min
Construyendo Mejores Sitios Web con Remix
Top Content
Remix is a web framework built on React Router that focuses on web fundamentals, accessibility, performance, and flexibility. It delivers real HTML and SEO benefits, and allows for automatic updating of meta tags and styles. It provides features like login functionality, session management, and error handling. Remix is a server-rendered framework that can enhance sites with JavaScript but doesn't require it for basic functionality. It aims to create quality HTML-driven documents and is flexible for use with different web technologies and stacks.
Compilador React Forget - Entendiendo React Idiomático
React Advanced 2023React Advanced 2023
33 min
Compilador React Forget - Entendiendo React Idiomático
Top Content
Joe Savona
Mofei Zhang
2 authors
The Talk discusses React Forget, a compiler built at Meta that aims to optimize client-side React development. It explores the use of memoization to improve performance and the vision of Forget to automatically determine dependencies at build time. Forget is named with an F-word pun and has the potential to optimize server builds and enable dead code elimination. The team plans to make Forget open-source and is focused on ensuring its quality before release.
Uso efectivo de useEffect
React Advanced 2022React Advanced 2022
30 min
Uso efectivo de useEffect
Top Content
Today's Talk explores the use of the useEffect hook in React development, covering topics such as fetching data, handling race conditions and cleanup, and optimizing performance. It also discusses the correct use of useEffect in React 18, the distinction between Activity Effects and Action Effects, and the potential misuse of useEffect. The Talk highlights the benefits of using useQuery or SWR for data fetching, the problems with using useEffect for initializing global singletons, and the use of state machines for handling effects. The speaker also recommends exploring the beta React docs and using tools like the stately.ai editor for visualizing state machines.
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.

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 🤐)
Next.js para Desarrolladores de React.js
React Day Berlin 2023React Day Berlin 2023
157 min
Next.js para Desarrolladores de React.js
Top Content
Featured WorkshopFree
Adrian Hajdin
Adrian Hajdin
En esta avanzada masterclass de Next.js, profundizaremos en conceptos clave y técnicas que permiten a los desarrolladores de React.js aprovechar al máximo Next.js. Exploraremos temas avanzados y prácticas prácticas, equipándote con las habilidades necesarias para construir aplicaciones web de alto rendimiento y tomar decisiones arquitectónicas informadas.
Al final de esta masterclass, serás capaz de:1. Comprender los beneficios de los Componentes del Servidor React y su papel en la construcción de aplicaciones React interactivas, renderizadas por el servidor.2. Diferenciar entre el tiempo de ejecución de Edge y Node.js en Next.js y saber cuándo usar cada uno en función de los requisitos de tu proyecto.3. Explorar técnicas avanzadas de Renderizado del Lado del Servidor (SSR), incluyendo streaming, fetching paralelo vs. secuencial, y sincronización de datos.4. Implementar estrategias de caché para mejorar el rendimiento y reducir la carga del servidor en las aplicaciones Next.js.5. Utilizar Acciones React para manejar la mutación compleja del servidor.6. Optimizar tus aplicaciones Next.js para SEO, compartir en redes sociales, y rendimiento general para mejorar la descubrabilidad y la participación del usuario.
Aventuras de Renderizado Concurrente en React 18
React Advanced 2021React Advanced 2021
132 min
Aventuras de Renderizado Concurrente en React 18
Top Content
Featured Workshop
Maurice de Beijer
Maurice de Beijer
Con el lanzamiento de React 18 finalmente obtenemos el tan esperado renderizado concurrente. Pero, ¿cómo va a afectar eso a tu aplicación? ¿Cuáles son los beneficios del renderizado concurrente en React? ¿Qué necesitas hacer para cambiar al renderizado concurrente cuando actualices a React 18? ¿Y qué pasa si no quieres o no puedes usar el renderizado concurrente todavía?

¡Hay algunos cambios de comportamiento de los que debes estar al tanto! En esta masterclass cubriremos todos esos temas y más.

Acompáñame con tu portátil en esta masterclass interactiva. Verás lo fácil que es cambiar al renderizado concurrente en tu aplicación React. Aprenderás todo sobre el renderizado concurrente, SuspenseList, la API startTransition y más.
Consejos sobre React Hooks que solo los profesionales conocen
React Summit Remote Edition 2021React Summit Remote Edition 2021
177 min
Consejos sobre React Hooks que solo los profesionales conocen
Top Content
Featured Workshop
Maurice de Beijer
Maurice de Beijer
La adición de la API de hooks a React fue un cambio bastante importante. Antes de los hooks, la mayoría de los componentos tenían que ser basados en clases. Ahora, con los hooks, estos son a menudo componentes funcionales mucho más simples. Los hooks pueden ser realmente simples de usar. Casi engañosamente simples. Porque todavía hay muchas formas en las que puedes equivocarte con los hooks. Y a menudo resulta que hay muchas formas en las que puedes mejorar tus componentes con una mejor comprensión de cómo se puede usar cada hook de React.Aprenderás todo sobre los pros y los contras de los diversos hooks. Aprenderás cuándo usar useState() versus useReducer(). Veremos cómo usar useContext() de manera eficiente. Verás cuándo usar useLayoutEffect() y cuándo useEffect() es mejor.
Presentando FlashList: Construyamos juntos una lista performante en React Native
React Advanced 2022React Advanced 2022
81 min
Presentando FlashList: Construyamos juntos una lista performante en React Native
Top Content
Featured Workshop
David Cortés Fulla
Marek Fořt
Talha Naqvi
3 authors
En esta masterclass aprenderás por qué creamos FlashList en Shopify y cómo puedes usarlo en tu código hoy. Te mostraremos cómo tomar una lista que no es performante en FlatList y hacerla performante usando FlashList con mínimo esfuerzo. Usaremos herramientas como Flipper, nuestro propio código de benchmarking, y te enseñaremos cómo la API de FlashList puede cubrir casos de uso más complejos y aún así mantener un rendimiento de primera categoría.Sabrás:- Breve presentación sobre qué es FlashList, por qué lo construimos, etc.- Migrando de FlatList a FlashList- Enseñando cómo escribir una lista performante- Utilizando las herramientas proporcionadas por la biblioteca FlashList (principalmente el hook useBenchmark)- Usando los plugins de Flipper (gráfico de llamas, nuestro perfilador de listas, perfilador de UI & JS FPS, etc.)- Optimizando el rendimiento de FlashList utilizando props más avanzados como `getType`- 5-6 tareas de muestra donde descubriremos y solucionaremos problemas juntos- Preguntas y respuestas con el equipo de Shopify
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.