Gestione della memoria
Memory leak, cleanup, useEffect cleanup, listener, timer, gestione di immagini di grandi dimensioni
1Che cos'è un memory leak in un'applicazione React Native?
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.
2Qual è il ruolo della funzione di ritorno (cleanup function) in useEffect per la gestione della memoria?
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.
3Perché è importante usare clearTimeout e clearInterval nella cleanup function di useEffect?
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.
Come prevenire i memory leak quando si usano gli event listener in React Native?
Qual è l'impatto delle closure sulla gestione della memoria nei componenti React Native?
+17 domande da colloquio
Altri argomenti di colloquio React Native
Fondamenti di JavaScript
Fondamenti di React
Fondamenti di React Native
React Hooks
TypeScript per React e React Native
Componenti e API di React Native
Styling e Layout in React Native
Navigazione in React Native
Gestione dello Stato in React Native
Networking e API in React Native
Persistenza dei dati
Form e validazione
Animazioni React Native
Native Modules & Bridge
Codice specifico per piattaforma
Permessi e API del dispositivo
Push Notifications
Testing in React Native
Debugging di React Native
Build & Deployment
Expo vs React Native Bare
Ottimizzazione delle prestazioni
Architecture Patterns
New Architecture di React Native
Best Practice di Sicurezza
Offline-First Architecture
CI/CD React Native
Monorepo e condivisione del codice
Argomenti avanzati
Ciclo di vita dell'app ed esecuzione in background
Autenticazione e gestione delle sessioni
Monitoring & Crash Reporting
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