React Native

Gerenciamento de memória

Memory leaks, cleanup, useEffect cleanup, listeners, timers, tratamento de imagens grandes

20 perguntas de entrevista·
Senior
1

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.

2

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.

3

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.

4

Como evitar memory leaks ao usar event listeners no React Native?

5

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

Junior
25 perguntas

Fundamentos do React

Junior
20 perguntas

Fundamentos do React Native

Junior
22 perguntas

React Hooks

Junior
20 perguntas

TypeScript para React e React Native

Junior
22 perguntas

Componentes e API do React Native

Junior
20 perguntas

Estilização e Layout no React Native

Junior
18 perguntas

Navegação no React Native

Mid-Level
22 perguntas

Gerenciamento de Estado no React Native

Mid-Level
24 perguntas

Networking e API no React Native

Mid-Level
20 perguntas

Persistência de dados

Mid-Level
20 perguntas

Formulários e validação

Mid-Level
18 perguntas

Animações do React Native

Mid-Level
22 perguntas

Native Modules & Bridge

Mid-Level
20 perguntas

Código específico de plataforma

Mid-Level
18 perguntas

Permissões e APIs de dispositivo

Mid-Level
20 perguntas

Push Notifications

Mid-Level
18 perguntas

Testing no React Native

Mid-Level
20 perguntas

Debugging de React Native

Mid-Level
18 perguntas

Build & Deployment

Mid-Level
20 perguntas

Expo vs React Native Bare

Mid-Level
18 perguntas

Otimização de desempenho

Senior
24 perguntas

Architecture Patterns

Senior
22 perguntas

New Architecture do React Native

Senior
24 perguntas

Melhores Práticas de Segurança

Senior
20 perguntas

Offline-First Architecture

Senior
20 perguntas

CI/CD React Native

Senior
20 perguntas

Monorepo e compartilhamento de código

Senior
18 perguntas

Tópicos avançados

Senior
22 perguntas

Ciclo de vida do app e execução em segundo plano

Mid-Level
20 perguntas

Autenticação e gerenciamento de sessões

Mid-Level
22 perguntas

Monitoring & Crash Reporting

Senior
20 perguntas

Domine React Native para sua proxima entrevista

Acesse todas as perguntas, flashcards, testes tecnicos, exercicios de code review e simuladores de entrevista.

Comece gratis