Utilizar eficazmente las herramientas de desarrollo de Chrome (tutorial)

Depuración de una aplicación de React con las Herramientas de desarrollo de Chrome

Todos los vídeos del tutorial Utilizar eficazmente las Herramientas de Desarrollo de Chrome (Tutorial)

Depurar aplicaciones web puede ser una tarea desafiante, especialmente cuando se trata de frameworks complejos como React. En esta guía, te mostraré cómo dominar eficazmente la depuración de aplicaciones React utilizando las herramientas de desarrollo de Google Chrome. En ella, me centraré en técnicas específicas para encontrar y corregir los errores más comunes. Debes tener conocimientos en React para poder comprender los conceptos.

Principales conclusiones

  • Comprende el papel de los mapas de origen al depurar tu aplicación React.
  • Coloca puntos de interrupción en lugares estratégicos para seguir el flujo de la aplicación.
  • Analiza la pila de llamadas para entender qué funciones se llaman y cuándo.

Guía paso a paso

Para comenzar a depurar, he preparado un ejemplo sencillo de una aplicación React que proporciona dos botones para incrementar valores de contador. Queremos asegurarnos de que el estado de la aplicación se actualice correctamente.

Primero, abre las Herramientas de desarrollo en Chrome. Puedes hacerlo haciendo clic derecho en la página y seleccionando "Inspeccionar" o simplemente presionando la tecla "F12".

Depuración de una aplicación React con Chrome Developer Tools

En el primer paso, recarga tu aplicación React para asegurarte de que estás trabajando con la versión actual. Una vez que la aplicación se haya cargado, verás dos botones para contar. El primer botón incrementará el primer contador y el segundo botón incrementará el segundo contador.

Depuración de una aplicación React con Chrome Developer Tools

Al hacer clic en los botones, verás que los valores de los contadores aumentan. Puedes verificar estos valores aumentados en la consola, que también encontrarás en las Herramientas de desarrollo. Para mostrar u ocultar la consola, presiona dos veces "Escape".

Depuración de una aplicación de React con Chrome Developer Tools

En el siguiente paso, altera el código de tu aplicación, especialmente el Hook UseEffect. El Hook UseEffect se utiliza para manejar efectos secundarios en React. En mi ejemplo, lo he configurado para imprimir el valor actual del contador en la consola. Esto te asegura comprender cuán frecuentemente se activa ese efecto.

Depuración de una aplicación de React con las herramientas para desarrolladores de Chrome

A través de la consola, puedes rastrear el código y verificar si los valores se imprimen correctamente. Sin embargo, si no especificas correctamente el array de dependencias en UseEffect, esto podría resultar en un comportamiento inesperado.

Para probar esto, elimina el array de dependencias por un momento y observa qué sucede. De vuelta en la aplicación, ahora puedes colocar un punto de interrupción. Haz clic en el número en la columna derecha para poner el punto de interrupción.

Depuración de una aplicación de React con Herramientas de Desarrollo de Chrome

Ahora, haz clic en el primer botón y observa cómo se detiene la ejecución en el punto de interrupción. Esto te permite analizar el estado de la aplicación mientras se ejecuta el manejador de clics.

Depuración de una aplicación de React con las herramientas para desarrolladores de Chrome

Nota que con cada clic, el estado se actualiza solo para el botón que se presionó. Sin embargo, al hacer clic en el otro botón, verás que el comportamiento de la aplicación no es el esperado.

Ahora comienzas a investigar el error. Te darás cuenta de que, en todo caso, el UseEffect imprime el valor anterior del contador, incluso al hacer clic en el otro contador.

Depuración de una aplicación React con Chrome Developer Tools

Aquí debes volver a agregar el array de dependencias y asegurarte de que incluya el valor actual del contador como dependencia. De esta forma, el efecto solo se activará cuando el contador relevante cambie.

Al recargar la aplicación y presionar los botones, notarás que la salida en la consola solo se produce al cambiar el contador. Añade otro punto de interrupción en tu declaración de Console.Log para verificar si se muestran los valores esperados allí.

Depuración de una aplicación React con Chrome Developer Tools

Ten en cuenta que en la visualización de código de React también existe una opción Mostrar frames ignorados. Esto puede ser útil para evitar que los códigos de bibliotecas asociadas aparezcan en la pila de llamadas, lo que podría interferir en tu análisis.

Una vez hayas corregido el error, puede ser útil revisarlo nuevamente. Debes asegurarte nuevamente de que el código en la funcionalidad Press se pruebe nuevamente para confirmar que el cambio tiene el efecto deseado.

Depuración de una aplicación React con las herramientas de desarrollo de Chrome

Además, puedes establecer puntos de interrupción estratégicos en diferentes partes del código para examinar más a fondo las llamadas de funciones. Revisa regularmente la pila de llamadas para seguir todas las funciones llamadas en un momento específico.

Recuerda también que las operaciones asincrónicas pueden provocar una pérdida de estado local, por lo que es importante revisar la pila de llamadas en un lugar central para mantener un seguimiento del estado de tu aplicación de React.

Resumen

En este tutorial has aprendido lo importante que son las Chrome Developer Tools para depurar efectivamente las aplicaciones de React. Establecer puntos de interrupción y analizar la pila de llamadas son pasos esenciales para comprender el flujo de tu código y solucionar problemas. Al gestionar correctamente las dependencias en UseEffect, puedes asegurarte de que tu aplicación muestre el estado esperado.

Preguntas frecuentes

¿Qué es un punto de interrupción?Un punto de interrupción es un punto en el código donde la ejecución del programa se detiene para examinar la ejecución actual.

¿Cómo se utiliza el array de dependencias en UseEffect?El array de dependencias te permite especificar qué variables deben activar el efecto cuando cambien.

¿Qué son los Source Maps?Los Source Maps vinculan el código comprimido y transpilado con el código original, facilitando la depuración.

¿Cómo puedo tener en cuenta las operaciones asincrónicas en la pila de llamadas?Ten en cuenta que las llamadas asíncronas a través de SetTimeout o Promises afectan el estado de la aplicación y pueden hacer que las variables locales no estén disponibles en un momento determinado.