React · Senior · Frage 19 von 75
Welches dieser Szenarien verursacht ein Speicherleck in einer React-App?
- 1Nach einem asynchronen Request im Klick-Handler
setStateaufrufen - 2Eine große Zahl von Komponenten in
React.memopacken - 3In einem Effekt abonnieren, ohne im Cleanup abzumelden
Antwort zeigen
Richtige Antwort: In einem Effekt abonnieren, ohne im Cleanup abzumelden
Erklärung
Der Handler hält eine Closure mit den Daten der Komponente, die nach dem Unmounten nicht freigegeben wird; wiederholtes Mounten sammelt Abonnements an. Ähnliche Quellen: nicht gelöschte Timer, unbegrenzte globale Caches, Referenzen auf abgehängte DOM-Knoten. Finden kann man sie mit Memory-Snapshots in den DevTools.