Gerenciamento de memória
Memory leaks, cleanup, useEffect cleanup, listeners, timers, tratamento de imagens grandes
1O que é um memory leak em uma aplicação React Native?
O que é um memory leak em uma aplicação React Native?
Resposta
Um memory leak ocorre quando objetos na memória deixam de ser usados pela aplicação, mas não podem ser liberados pelo garbage collector porque ainda existem referências a esses objetos. No React Native, isso costuma acontecer com subscriptions não limpas, timers ainda ativos após o unmount ou closures que capturam referências obsoletas. Memory leaks degradam progressivamente o desempenho e podem causar crashes em sessões longas.
2Qual é o papel da função de retorno (cleanup function) no useEffect para o gerenciamento de memória?
Qual é o papel da função de retorno (cleanup function) no useEffect para o gerenciamento de memória?
Resposta
A cleanup function retornada pelo useEffect é executada antes de o componente ser desmontado ou antes de o efeito ser reexecutado com novas dependências. Seu papel principal é limpar os recursos alocados pelo efeito: cancelar subscriptions, clearTimeout/clearInterval, remove event listeners ou abortar as requisições em andamento. Sem essa limpeza, esses recursos continuam existindo na memória e podem tentar atualizar um componente desmontado.
3Por que é importante usar clearTimeout e clearInterval na cleanup function do useEffect?
Por que é importante usar clearTimeout e clearInterval na cleanup function do useEffect?
Resposta
Os timers criados com setTimeout e setInterval continuam executando mesmo após o unmount do componente. Se o callback do timer tentar atualizar o state de um componente desmontado, dispara o warning 'Can't perform a React state update on an unmounted component' e constitui um memory leak. O timer mantém uma referência ao callback e à sua closure, impedindo que o garbage collector libere esses recursos. Usar clearTimeout/clearInterval no cleanup garante o cancelamento correto desses timers.
Como evitar memory leaks ao usar event listeners no React Native?
Qual é o impacto das closures no gerenciamento de memória em componentes React Native?
+17 perguntas de entrevista
Outros temas de entrevista React Native
Fundamentos de JavaScript
Fundamentos do React
Fundamentos do React Native
React Hooks
TypeScript para React e React Native
Componentes e API do React Native
Estilização e Layout no React Native
Navegação no React Native
Gerenciamento de Estado no React Native
Networking e API no React Native
Persistência de dados
Formulários e validação
Animações do React Native
Native Modules & Bridge
Código específico de plataforma
Permissões e APIs de dispositivo
Push Notifications
Testing no React Native
Debugging de React Native
Build & Deployment
Expo vs React Native Bare
Otimização de desempenho
Architecture Patterns
New Architecture do React Native
Melhores Práticas de Segurança
Offline-First Architecture
CI/CD React Native
Monorepo e compartilhamento de código
Tópicos avançados
Ciclo de vida do app e execução em segundo plano
Autenticação e gerenciamento de sessões
Monitoring & Crash Reporting
Domine React Native para sua proxima entrevista
Acesse todas as perguntas, flashcards, testes tecnicos, exercicios de code review e simuladores de entrevista.
Comece gratis