Perguntas e respostas para entrevista React Native Júnior

Milad Bonakdar
Autor
Pratique perguntas de entrevista React Native júnior sobre componentes, hooks, navegação, chamadas de API, listas, AsyncStorage e bases mobile.
Introdução
Em uma entrevista júnior de React Native, é comum avaliarem se você consegue criar telas mobile simples com React, explicar renderização nativa, gerenciar estado com hooks, navegar entre telas, buscar dados de API e armazenar dados locais não sensíveis. Uma boa resposta é prática: o que você usaria, quando evitaria e qual trade-off isso cria em iOS e Android.
Use este guia para praticar as perguntas mais prováveis em uma primeira vaga de React Native. Foque em fundamentos de React, componentes principais, navegação, formulários, listas, chamadas de API, armazenamento e depuração mobile em vez de decorar detalhes de bibliotecas.
Fundamentos do React (6 Perguntas)
1. O que é React Native e como ele difere do React?
Resposta:
- React: Biblioteca JavaScript para construir interfaces de usuário web
- React Native: Framework para construir aplicativos móveis nativos usando React
- Principais Diferenças:
- React Native renderiza para componentes nativos (não DOM)
- Usa APIs nativas em vez de APIs web
- Abordagem de estilo diferente (sem CSS, usa StyleSheet)
- Código específico da plataforma para iOS e Android
Raridade: Muito Comum Dificuldade: Fácil
2. Quais são os componentes principais no React Native?
Resposta: React Native fornece componentes integrados que mapeiam para elementos de UI nativos:
- View: Componente de contêiner (como
divna web) - Text: Exibe texto (todo texto deve estar no componente
Text) - Image: Exibe imagens
- ScrollView: Contêiner rolável
- TextInput: Campo de entrada de texto
- TouchableOpacity/Pressable: Elementos toucháveis
- FlatList: Renderização de lista eficiente
- Button: Componente de botão básico
Raridade: Muito Comum Dificuldade: Fácil
3. Explique a diferença entre View e ScrollView.
Resposta:
- View: Contêiner estático. O conteúdo além dos limites da tela não é rolável.
- ScrollView: Contêiner rolável. Renderiza todos os filhos de uma vez (pode consumir muita memória para listas grandes).
- Quando usar:
- View: Para layouts que cabem na tela
- ScrollView: Para pequenas quantidades de conteúdo rolável
- FlatList: Para listas grandes (renderiza apenas os itens visíveis)
Raridade: Muito Comum Dificuldade: Fácil
4. O que são React Hooks e quais são os mais usados?
Resposta: Hooks são funções que permitem usar recursos de estado e ciclo de vida em componentes funcionais.
- Hooks Comuns:
- useState: Gerencia o estado do componente
- useEffect: Lida com efeitos colaterais (busca de dados, assinaturas)
- useContext: Acessa valores de contexto
- useCallback: Memoiza funções
- useMemo: Memoiza cálculos caros
- useRef: Referencia elementos DOM ou persiste valores
Raridade: Muito Comum Dificuldade: Fácil
5. Explique o hook useEffect e seu array de dependências.
Resposta:
useEffect executa efeitos colaterais após a renderização. O array de dependências controla quando ele é executado:
- Sem array: Executa após cada renderização
- Array vazio
[]: Executa uma vez após a renderização inicial - Com dependências
[dep1, dep2]: Executa quando as dependências mudam
Raridade: Muito Comum Dificuldade: Média
6. O que é o Virtual DOM e como o React o usa?
Resposta: O Virtual DOM é um conceito do React para web: o React mantém uma árvore leve da interface, compara essa árvore após mudanças de estado e atualiza apenas o que mudou. No React Native, a mesma ideia de reconciliação se aplica, mas o resultado final são views nativas, não nós do DOM do navegador.
- O que dizer na entrevista:
- Mudanças de estado fazem o React renderizar novamente os componentes afetados
- O React compara a nova árvore de componentes com a anterior
- O React Native aplica as atualizações necessárias aos componentes nativos de UI
- Você ainda otimiza com keys estáveis, bom posicionamento de estado e memoização apenas quando resolve um problema real de re-renderização
- Correção importante: React Native não atualiza HTML nem o DOM do navegador.
Raridade: Comum Dificuldade: Fácil
Componentes e Props (4 Perguntas)
7. Qual é a diferença entre Props e State?
Resposta:
- Props:
- Passadas do pai para o filho
- Somente leitura (imutável)
- Usadas para configuração do componente
- State:
- Gerenciado dentro do componente
- Mutável (pode ser alterado)
- Usado para dados dinâmicos
Raridade: Muito Comum Dificuldade: Fácil
8. O que são Componentes Funcionais vs Componentes de Classe?
Resposta:
- Componentes Funcionais:
- Sintaxe mais simples
- Usam hooks para estado e ciclo de vida
- Preferidos no React moderno
- Componentes de Classe:
- Abordagem mais antiga
- Usam
this.statee métodos de ciclo de vida - Ainda suportados, mas menos comuns
Raridade: Comum Dificuldade: Fácil
9. Como você passa dados do componente filho para o componente pai?
Resposta: Use funções de callback passadas como props.
Raridade: Muito Comum Dificuldade: Fácil
10. O que é a prop key e por que ela é importante?
Resposta:
A prop key ajuda o React a identificar quais itens foram alterados, adicionados ou removidos em listas.
- Propósito: Otimizar o desempenho da renderização
- Requisitos: Deve ser único entre os irmãos, estável (não use o índice se a lista puder mudar)
Raridade: Muito Comum Dificuldade: Fácil
Estilo e Layout (3 Perguntas)
11. Como você estiliza componentes no React Native?
Resposta: React Native usa objetos JavaScript para estilizar, não CSS.
- StyleSheet API: Cria estilos otimizados
- Estilos Inline: Objetos de estilo diretos (menos performático)
- Flexbox: Sistema de layout padrão
Raridade: Muito Comum Dificuldade: Fácil
12. Explique Flexbox no React Native.
Resposta: Flexbox é o sistema de layout primário no React Native.
- Propriedades Principais:
- flexDirection:
rowoucolumn(padrão:column) - justifyContent: Alinha ao longo do eixo principal
- alignItems: Alinha ao longo do eixo transversal
- flex: Dimensionamento proporcional
- flexDirection:
Raridade: Muito Comum Dificuldade: Média
13. Qual é a diferença entre margin e padding?
Resposta:
- Padding: Espaço dentro do componente (entre o conteúdo e a borda)
- Margin: Espaço fora do componente (entre o componente e os vizinhos)
Raridade: Comum Dificuldade: Fácil
Navegação (3 Perguntas)
14. O que é React Navigation e como você o usa?
Resposta: React Navigation é a biblioteca de navegação mais popular para React Native.
- Tipos:
- Stack Navigator: Pilha de telas (push/pop)
- Tab Navigator: Abas inferiores
- Drawer Navigator: Menu lateral
Raridade: Muito Comum Dificuldade: Média
15. Como você passa parâmetros entre telas?
Resposta:
Use a função navigate com um segundo parâmetro para dados.
Raridade: Muito Comum Dificuldade: Fácil
16. O que são opções de navegação e como você personaliza os headers?
Resposta: As opções de navegação controlam a aparência e o comportamento da tela.
Raridade: Comum Dificuldade: Fácil
Dados e Armazenamento (4 Perguntas)
17. Como você busca dados de uma API no React Native?
Resposta:
Use a API fetch ou bibliotecas como Axios.
Raridade: Muito Comum Dificuldade: Média
18. O que é AsyncStorage e como você o usa?
Resposta: AsyncStorage é um armazenamento assíncrono de chave-valor para dados pequenos e não sensíveis.
- Bons usos: Tema escolhido, flags de onboarding, JSON em cache, preferências simples
- Evite para: Tokens de autenticação, chaves de API, senhas, grandes conjuntos de dados e dados que exigem consultas complexas
- Para dados sensíveis: Use armazenamento seguro da plataforma, como iOS Keychain ou armazenamento criptografado no Android por meio de uma biblioteca mantida
Raridade: Muito Comum Dificuldade: Fácil
19. Qual é a diferença entre FlatList e ScrollView?
Resposta:
- ScrollView:
- Renderiza todos os filhos de uma vez
- Bom para listas pequenas
- Uso intensivo de memória para listas grandes
- FlatList:
- Renderiza apenas os itens visíveis (carregamento preguiçoso)
- Eficiente para listas grandes
- Otimizações integradas
Raridade: Muito Comum Dificuldade: Fácil
20. Como você lida com formulários e entrada de usuário?
Resposta: Use componentes controlados com estado.
Raridade: Muito Comum Dificuldade: Média


