Memory Leak Detector
When to Trigger
- •Component unmounting
- •Event listeners added
- •Timers/intervals created
- •useEffect cleanup
What to Do
- •Listeners: addEventListener in useEffect → return () => removeEventListener in cleanup.
- •Timers: setInterval/setTimeout → return () => clearInterval/clearTimeout.
- •Subscriptions: subscribe in useEffect → return () => unsubscribe().
- •Fetch: Use AbortController; in cleanup call controller.abort(); ignore AbortError in catch.
- •State updates: Avoid setState after unmount; abort fetch or check mounted ref before setState.
Always return a cleanup function from useEffect when registering listeners, timers, or subscriptions. Prefer abort for in-flight requests.