React Native

Memory Management

Memory leaks, cleanup, useEffect cleanup, listeners, timers, large images handling

20 questions d'entretien·
Senior
1

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.

2

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é.

3

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.

4

Comment éviter les fuites mémoire lors de l'utilisation d'event listeners dans React Native ?

5

Quel est l'impact des closures sur la gestion mémoire dans les composants React Native ?

+17 questions d'entretien

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