Gestión de memoria
Memory leaks, cleanup, useEffect cleanup, listeners, timers, manejo de imágenes grandes
1¿Qué es un memory leak en una aplicación React Native?
¿Qué es un memory leak en una aplicación React Native?
Respuesta
Un memory leak ocurre cuando objetos en memoria ya no son utilizados por la aplicación pero no pueden ser liberados por el garbage collector porque aún existen referencias a esos objetos. En React Native, esto suele ocurrir con subscriptions sin limpiar, timers que siguen activos después del unmount o closures que capturan referencias obsoletas. Los memory leaks degradan progresivamente el rendimiento y pueden provocar crashes en sesiones largas.
2¿Cuál es el papel de la función de retorno (cleanup function) en useEffect para la gestión de memoria?
¿Cuál es el papel de la función de retorno (cleanup function) en useEffect para la gestión de memoria?
Respuesta
La cleanup function retornada por useEffect se ejecuta antes de que el componente se desmonte o antes de que el efecto se vuelva a ejecutar con nuevas dependencias. Su papel principal es limpiar los recursos asignados por el efecto: cancelar subscriptions, clearTimeout/clearInterval, remove event listeners o abortar las peticiones en curso. Sin esta limpieza, esos recursos siguen existiendo en memoria y pueden intentar actualizar un componente desmontado.
3¿Por qué es importante usar clearTimeout y clearInterval en la cleanup function de useEffect?
¿Por qué es importante usar clearTimeout y clearInterval en la cleanup function de useEffect?
Respuesta
Los timers creados con setTimeout y setInterval siguen ejecutándose incluso después del unmount del componente. Si el callback del timer intenta actualizar el state de un componente desmontado, provoca el warning 'Can't perform a React state update on an unmounted component' y constituye un memory leak. El timer mantiene una referencia al callback y a su closure, impidiendo que el garbage collector libere esos recursos. Usar clearTimeout/clearInterval en el cleanup garantiza la cancelación correcta de esos timers.
¿Cómo evitar memory leaks al usar event listeners en React Native?
¿Cuál es el impacto de los closures en la gestión de memoria en los componentes de React Native?
+17 preguntas de entrevista
Otros temas de entrevista React Native
Fundamentos de JavaScript
Fundamentos de React
Fundamentos de React Native
React Hooks
TypeScript para React y React Native
Componentes y API de React Native
Estilos y Layout en React Native
Navegación en React Native
Gestión de Estado en React Native
Networking y API en React Native
Persistencia de datos
Formularios y validación
Animaciones de React Native
Native Modules & Bridge
Código específico de plataforma
Permisos y APIs de dispositivo
Push Notifications
Testing en React Native
Debugging de React Native
Build & Deployment
Expo vs React Native Bare
Optimización del rendimiento
Architecture Patterns
New Architecture de React Native
Mejores Prácticas de Seguridad
Offline-First Architecture
CI/CD React Native
Monorepo y compartición de código
Temas avanzados
Ciclo de vida de la app y ejecución en segundo plano
Autenticación y gestión de sesiones
Monitoring & Crash Reporting
Domina React Native para tu próxima entrevista
Accede a todas las preguntas, flashcards, tests técnicos, ejercicios de code review y simuladores de entrevista.
Empieza gratis