React Native

Gestione della memoria

Memory leak, cleanup, useEffect cleanup, listener, timer, gestione di immagini di grandi dimensioni

20 domande da colloquio·
Senior
1

Che cos'è un memory leak in un'applicazione React Native?

Risposta

Un memory leak si verifica quando gli oggetti in memoria non sono più utilizzati dall'applicazione ma non possono essere liberati dal garbage collector perché esistono ancora riferimenti a tali oggetti. In React Native ciò accade spesso con subscription non ripulite, timer ancora attivi dopo l'unmount o closure che catturano riferimenti obsoleti. I memory leak degradano progressivamente le prestazioni e possono causare crash durante sessioni lunghe.

2

Qual è il ruolo della funzione di ritorno (cleanup function) in useEffect per la gestione della memoria?

Risposta

La cleanup function restituita da useEffect viene eseguita prima che il componente venga smontato o prima che l'effetto venga rieseguito con nuove dipendenze. Il suo ruolo principale è ripulire le risorse allocate dall'effetto: annullare le subscription, clearTimeout/clearInterval, rimuovere gli event listener o annullare le richieste in corso. Senza questa pulizia, queste risorse continuano a esistere in memoria e possono tentare di aggiornare un componente smontato.

3

Perché è importante usare clearTimeout e clearInterval nella cleanup function di useEffect?

Risposta

I timer creati con setTimeout e setInterval continuano a essere eseguiti anche dopo l'unmount del componente. Se il callback del timer tenta di aggiornare lo state di un componente smontato, attiva l'avviso 'Can't perform a React state update on an unmounted component' e costituisce un memory leak. Il timer mantiene un riferimento al callback e alla sua closure, impedendo al garbage collector di liberare queste risorse. Usare clearTimeout/clearInterval nel cleanup garantisce la corretta cancellazione di questi timer.

4

Come prevenire i memory leak quando si usano gli event listener in React Native?

5

Qual è l'impatto delle closure sulla gestione della memoria nei componenti React Native?

+17 domande da colloquio

Padroneggia React Native per il tuo prossimo colloquio

Accedi a tutte le domande, flashcards, test tecnici, esercizi di code review e simulatori di colloquio.

Inizia gratis