Memory Management
Memory leaks, cleanup, useEffect cleanup, listeners, timers, large images handling
1Qu'est-ce qu'une fuite de mémoire (memory leak) dans une application React Native ?
Qu'est-ce qu'une fuite de mémoire (memory leak) dans une application React Native ?
Réponse
Une fuite de mémoire se produit lorsque des objets en mémoire ne sont plus utilisés par l'application mais ne peuvent pas être libérés par le garbage collector car des références vers ces objets existent encore. En React Native, cela arrive souvent avec des subscriptions non nettoyées, des timers actifs après unmount, ou des closures qui capturent des références obsolètes. Les fuites de mémoire dégradent progressivement les performances et peuvent provoquer des crashs sur des sessions longues.
2Quel est le rôle de la fonction de retour (cleanup function) dans useEffect pour la gestion mémoire ?
Quel est le rôle de la fonction de retour (cleanup function) dans useEffect pour la gestion mémoire ?
Réponse
La fonction de cleanup retournée par useEffect est exécutée avant que le composant soit démonté ou avant que l'effet ne soit ré-exécuté avec de nouvelles dépendances. Son rôle principal est de nettoyer les ressources allouées par l'effet : annuler les subscriptions, clearTimeout/clearInterval, retirer les event listeners, ou annuler les requêtes en cours. Sans ce nettoyage, ces ressources continuent d'exister en mémoire et peuvent tenter de mettre à jour un composant démonté.
3Pourquoi est-il important d'utiliser clearTimeout et clearInterval dans la fonction de cleanup de useEffect ?
Pourquoi est-il important d'utiliser clearTimeout et clearInterval dans la fonction de cleanup de useEffect ?
Réponse
Les timers créés avec setTimeout et setInterval continuent de s'exécuter même après le démontage du composant. Si le callback du timer tente de mettre à jour le state d'un composant démonté, cela provoque le warning 'Can't perform a React state update on an unmounted component' et constitue une fuite mémoire. Le timer garde une référence au callback et à sa closure, empêchant le garbage collector de libérer ces ressources. Utiliser clearTimeout/clearInterval dans le cleanup garantit l'annulation propre de ces timers.
Comment éviter les fuites mémoire lors de l'utilisation d'event listeners dans React Native ?
Quel est l'impact des closures sur la gestion mémoire dans les composants React Native ?
+17 questions d'entretien
Autres sujets d'entretien React Native
Les bases de JavaScript
Fondamentaux React
Bases de React Native
React Hooks
TypeScript pour React & React Native
Composants & API React Native
Styling & Layout React Native
Navigation React Native
State Management React Native
Networking & API React Native
Persistance des données
Forms & Validation
Animations React Native
Native Modules & Bridge
Code spécifique aux plateformes
Permissions & Device APIs
Push Notifications
Testing React Native
Debugging React Native
Build & Deployment
Expo vs React Native Bare
Performance Optimization
Architecture Patterns
New Architecture React Native
Security Best Practices
Offline-First Architecture
CI/CD React Native
Monorepo & Code Sharing
Advanced Topics
App Lifecycle & Background Execution
Authentication & Session Management
Monitoring & Crash Reporting
Maîtrise React Native pour ton prochain entretien
Accède à toutes les questions, flashcards, tests techniques, exercices de code review et simulateurs d'entretien.
Commencer gratuitement