React Native

Geheugenbeheer

Memory leaks, cleanup, useEffect cleanup, listeners, timers, verwerking van grote afbeeldingen

20 gespreksvragen·
Senior
1

Wat is een memory leak in een React Native-applicatie?

Antwoord

Een memory leak treedt op wanneer objecten in het geheugen niet langer door de applicatie worden gebruikt, maar niet door de garbage collector kunnen worden vrijgegeven omdat er nog referenties naar deze objecten bestaan. In React Native gebeurt dit vaak bij niet-opgeruimde subscriptions, timers die na het unmounten nog actief zijn, of closures die verouderde referenties vasthouden. Memory leaks verslechteren de performance geleidelijk en kunnen crashes veroorzaken tijdens lange sessies.

2

Wat is de rol van de retourfunctie (cleanup function) in useEffect voor geheugenbeheer?

Antwoord

De cleanup function die door useEffect wordt geretourneerd, wordt uitgevoerd voordat de component wordt unmounted of voordat het effect opnieuw wordt uitgevoerd met nieuwe dependencies. De belangrijkste rol is het opruimen van de door het effect toegewezen resources: subscriptions annuleren, clearTimeout/clearInterval, event listeners verwijderen of lopende verzoeken afbreken. Zonder deze opruiming blijven deze resources in het geheugen bestaan en kunnen ze proberen een unmounted component bij te werken.

3

Waarom is het belangrijk om clearTimeout en clearInterval te gebruiken in de useEffect cleanup function?

Antwoord

Timers die met setTimeout en setInterval zijn aangemaakt, blijven uitvoeren zelfs nadat de component is unmounted. Als de timer-callback probeert de state van een unmounted component bij te werken, activeert dit de waarschuwing 'Can't perform a React state update on an unmounted component' en vormt het een memory leak. De timer houdt een referentie naar de callback en zijn closure vast, waardoor de garbage collector deze resources niet kan vrijgeven. Het gebruik van clearTimeout/clearInterval in de cleanup zorgt voor het correct annuleren van deze timers.

4

Hoe voorkom je memory leaks bij het gebruik van event listeners in React Native?

5

Wat is de impact van closures op het geheugenbeheer in React Native-componenten?

+17 gespreksvragen

Beheers React Native voor je volgende gesprek

Krijg toegang tot alle vragen, flashcards, technische tests, code review-oefeningen en gespreksimulatoren.

Begin gratis