React Native

Speicherverwaltung

Memory Leaks, Cleanup, useEffect Cleanup, Listeners, Timers, Umgang mit großen Bildern

20 Interview-Fragen·
Senior
1

Was ist ein Memory Leak in einer React Native-Anwendung?

Antwort

Ein Memory Leak tritt auf, wenn Objekte im Speicher von der Anwendung nicht mehr verwendet werden, aber vom Garbage Collector nicht freigegeben werden können, weil noch Referenzen auf diese Objekte existieren. In React Native passiert das häufig bei nicht bereinigten Subscriptions, Timern, die nach dem Unmount noch aktiv sind, oder Closures, die veraltete Referenzen erfassen. Memory Leaks verschlechtern die Performance allmählich und können bei langen Sitzungen zu Abstürzen führen.

2

Welche Rolle spielt die Rückgabefunktion (Cleanup-Funktion) in useEffect für die Speicherverwaltung?

Antwort

Die von useEffect zurückgegebene Cleanup-Funktion wird ausgeführt, bevor die Komponente unmounted wird oder bevor der Effekt mit neuen Abhängigkeiten erneut ausgeführt wird. Ihre Hauptaufgabe besteht darin, die vom Effekt zugewiesenen Ressourcen zu bereinigen: Subscriptions abbrechen, clearTimeout/clearInterval, Event Listener entfernen oder laufende Anfragen abbrechen. Ohne diese Bereinigung bleiben diese Ressourcen im Speicher bestehen und können versuchen, eine unmounted Komponente zu aktualisieren.

3

Warum ist es wichtig, clearTimeout und clearInterval in der useEffect-Cleanup-Funktion zu verwenden?

Antwort

Mit setTimeout und setInterval erstellte Timer werden auch nach dem Unmount der Komponente weiter ausgeführt. Wenn der Timer-Callback versucht, den State einer unmounted Komponente zu aktualisieren, löst dies die Warnung 'Can't perform a React state update on an unmounted component' aus und stellt ein Memory Leak dar. Der Timer hält eine Referenz auf den Callback und dessen Closure, wodurch der Garbage Collector diese Ressourcen nicht freigeben kann. Die Verwendung von clearTimeout/clearInterval im Cleanup gewährleistet das ordnungsgemäße Abbrechen dieser Timer.

4

Wie verhindert man Memory Leaks bei der Verwendung von Event Listenern in React Native?

5

Welche Auswirkungen haben Closures auf die Speicherverwaltung in React-Native-Komponenten?

+17 Interview-Fragen

Meistere React Native für dein nächstes Interview

Zugang zu allen Fragen, Flashcards, technischen Tests, Code-Review-Übungen und Interview-Simulatoren.

Kostenlos starten