React Native

Zarządzanie pamięcią

Wycieki pamięci, cleanup, useEffect cleanup, listeners, timers, obsługa dużych obrazów

20 pytań z rozmów·
Senior
1

Czym jest memory leak (wyciek pamięci) w aplikacji React Native?

Odpowiedź

Memory leak występuje, gdy obiekty w pamięci nie są już używane przez aplikację, ale nie mogą zostać zwolnione przez garbage collector, ponieważ wciąż istnieją referencje do tych obiektów. W React Native zdarza się to najczęściej przy niewyczyszczonych subscription, timerach wciąż aktywnych po unmount lub closure przechwytujących nieaktualne referencje. Memory leaki stopniowo pogarszają wydajność i mogą powodować crashe podczas długich sesji.

2

Jaką rolę pełni funkcja zwracana (cleanup function) w useEffect w zarządzaniu pamięcią?

Odpowiedź

Cleanup function zwracana przez useEffect jest wykonywana przed unmount komponentu lub przed ponownym wykonaniem efektu z nowymi zależnościami. Jej głównym zadaniem jest sprzątanie zasobów zaalokowanych przez efekt: anulowanie subscription, clearTimeout/clearInterval, usuwanie event listenerów lub przerywanie trwających żądań. Bez tego sprzątania te zasoby nadal istnieją w pamięci i mogą próbować zaktualizować odmontowany komponent.

3

Dlaczego ważne jest używanie clearTimeout i clearInterval w cleanup function useEffect?

Odpowiedź

Timery utworzone za pomocą setTimeout i setInterval nadal działają nawet po unmount komponentu. Jeśli callback timera próbuje zaktualizować state odmontowanego komponentu, wyzwala ostrzeżenie 'Can't perform a React state update on an unmounted component' i stanowi memory leak. Timer utrzymuje referencję do callbacka i jego closure, uniemożliwiając garbage collectorowi zwolnienie tych zasobów. Użycie clearTimeout/clearInterval w cleanup zapewnia poprawne anulowanie tych timerów.

4

Jak zapobiegać memory leakom podczas korzystania z event listenerów w React Native?

5

Jaki wpływ mają closures na zarządzanie pamięcią w komponentach React Native?

+17 pytań z rozmów

Opanuj React Native na następną rozmowę

Uzyskaj dostęp do wszystkich pytań, flashcards, testów technicznych, ćwiczeń code review i symulatorów rozmów.

Zacznij za darmo