Como parte de mi continuo aprendizaje en React.js a través del curso de Midudev en YouTube (⚛️ CURSO DE REACT 2024 – YouTube), desarrollé una prueba técnica: un buscador de películas. Este proyecto fue una excelente oportunidad para profundizar en conceptos de React, optimización de rendimiento y buenas prácticas en el manejo de datos.
Hooks Avanzados para un Rendimiento Óptimo
En este ejercicio, me enfoqué en dominar el uso de hooks esenciales para construir aplicaciones React eficientes:
- useMemo: Aprendí a utilizar useMemo para cachear datos y evitar recálculos innecesarios entre renderizados. Esto es crucial para mejorar la velocidad y la eficiencia de la aplicación, especialmente al manipular listas grandes de datos, como las películas en un buscador.
- useCallback: Entendí que useCallback es similar a useMemo, pero su función principal es memorizar funciones. Esto es fundamental para evitar que las funciones se creen de nuevo en cada renderizado.
- useRef: Utilicé useRef para referenciar valores que persisten entre renderizados sin causar una nueva renderización cuando cambian.
Estrategias de Desarrollo y Fetching de Datos
El proyecto incorporó varias estrategias para un desarrollo ágil y un manejo eficiente de la información:
- Prototipado Rápido con Datos Locales: Una técnica valiosa que aprendí fue cómo iniciar rápidamente el desarrollo de la interfaz de usuario. Esto implicó copiar directamente la información de un archivo .json (obtenido de un enlace de API) y usarla localmente sin necesidad de un fetching de datos inicial. Esto acelera el proceso de diseño y desarrollo de la UI, aunque, por supuesto, una llamada real a la API se implementaría después.
- Fetching de Datos Real: La funcionalidad central del buscador implicaba la recolección de datos de películas desde una API. Mi tarea fue implementar la lógica para obtener esta información y, posteriormente, permitir que los usuarios realizaran búsquedas por el título de las películas, mostrando los resultados.
Control de Formularios y Funcionalidades Adicionales
El buscador también fue una plataforma para explorar diferentes métodos de control de formularios:
- Formularios Controlados y No Controlados: Aprendí a implementar formularios tanto de manera controlada por React (utilizando useState y useRef para gestionar el estado de los inputs) como de manera no controlada (accediendo directamente al DOM a través de JavaScript). Esta versatilidad es útil para elegir el enfoque más adecuado según el escenario.
- Ordenamiento de Películas: Se implementó una funcionalidad clave: la ordenación de las películas por año, de la más nueva a la más antigua. Se estuvo utilizando useMemo, fue fundamental para optimizar este proceso de ordenamiento, evitando cálculos innecesarios cada vez que la lista de películas se actualizaba o el componente se renderizaba.
- Debounce para Búsquedas Eficientes: Una técnica crucial para mejorar la experiencia de usuario en los buscadores es el debounce. Implementé esta funcionalidad, que retrasa la ejecución de la búsqueda por unos segundos después de que el usuario deja de escribir. Esto reduce la cantidad de llamadas a la API, optimizando el rendimiento y evitando saturar el servidor.
Tecnologías Utilizadas
Para este proyecto, me apoyé en las siguientes herramientas:
- Visual Studio Code
- Vite
- Node.js
Conclusión
Este ejercicio de un buscador de películas fue una inmersión profunda en la optimización de aplicaciones React. Me permitió dominar el uso de useMemo, useCallback y useRef para evitar recálculos y renderizados innecesarios. Comprendí la importancia de hacer las llamadas a la API de manera eficiente y aprendí diversas estrategias para el control de formularios. Este proyecto consolidó mi habilidad para construir aplicaciones React con un rendimiento sólido y una experiencia de usuario fluida.



