20 perguntas · React
Perguntas de entrevista para Desenvolvedor React
Perguntas sobre hooks, estado, renderização e reconciliação, desempenho e design de componentes. Servem para separar quem monta um componente de quem entende por que ele renderiza de novo.
O React moderno parece simples: escreva uma função, devolva JSX e adicione um hook. Mas os desenvolvedores que valem a contratação entendem o que o React faz por baixo. A maioria dos problemas reais não é “como mostro esses dados?”, e sim “por que isso renderiza quarenta vezes?”, “por que esse efeito roda duas vezes?” ou “por que o meu estado está uma atualização atrasado?”. Por isso uma boa entrevista investiga modelos mentais, e não decoreba de API.
Um bom candidato explica por que as atualizações de estado são agrupadas e assíncronas, o que entra no array de dependências do useEffect e por quê, a diferença entre estado derivado e estado armazenado, e quando a memoização ajuda de verdade ou só adiciona ruído. As perguntas abaixo vão de hooks e estado para renderização e reconciliação, depois desempenho e design de componentes, que é mais ou menos a ordem em que a senioridade aparece.
Você procura alguém que pensa em fluxo de dados e ciclos de renderização, sabe quando subir o estado e quando não, e consegue explicar um trade-off como “usei context aqui, mas ele causaria renderizações desnecessárias, então fiz assim”. Combine duas perguntas de hooks com um cenário de renderização e uma discussão de design de componentes e você logo vai saber se a pessoa já manteve uma base de código React de verdade ou só seguiu tutoriais.
Hooks e estado6 perguntas
Que problema os hooks resolvem em comparação com componentes de classe, e quais são as regras dos hooks?
O que observar: Reaproveitar lógica com estado sem HOCs ou render props, e as regras de chamar hooks sempre no topo e só em componentes ou outros hooks.
Me explique o array de dependências do useEffect. O que entra nele, e o que acontece se você errar?
O que observar: Todo valor reativo usado no efeito, e as consequências: valores desatualizados quando falta algo e loops infinitos quando sobra.
Por que as atualizações de estado são assíncronas e agrupadas, e como isso pega quem lê o estado logo depois de alterá-lo?
O que observar: Que o novo valor só existe na próxima renderização, e o uso da forma funcional setX(prev => ...) quando o valor depende do anterior.
Quando você usaria useState e quando usaria useReducer?
O que observar: O useReducer quando o estado tem várias partes relacionadas ou transições complexas, e useState para valores simples e independentes.
Qual é a diferença entre useMemo, useCallback e React.memo, e quando cada um ajuda de fato?
O que observar: Memoizar valores, funções e componentes, e a noção de que só ajuda quando há custo real medido ou quando a referência estável evita renderizações.
O que é um custom hook, e quando você extraiu um para evitar repetir lógica?
O que observar: Um exemplo real, como busca de dados, formulário ou assinatura de evento, extraído com nome e responsabilidade claros.
Renderização e reconciliação5 perguntas
O que acontece quando um componente renderiza de novo, e o que dispara uma nova renderização?
O que observar: Mudança de estado, renderização do pai e mudança de context, e a diferença entre renderizar e efetivamente alterar o DOM.
Explique, com as suas palavras, a reconciliação e o virtual DOM.
O que observar: O React comparando a árvore nova com a anterior e aplicando só as diferenças, com o tipo do elemento e a key guiando essa comparação.
Por que o React precisa de uma key estável nos itens de uma lista, e o que dá errado quando você usa o índice do array?
O que observar: Estado e foco indo para o item errado quando a lista é reordenada, filtrada ou recebe itens no início.
Por que um efeito pode rodar duas vezes em desenvolvimento, e como você deve encarar isso?
O que observar: O StrictMode montando, desmontando e montando de novo para revelar efeitos sem limpeza, e a correção pela função de cleanup, não por gambiarra.
Como você evita que a renderização de um componente pai renderize à toa todos os filhos?
O que observar: Trazer o estado para mais perto de onde é usado, passar componentes como children, usar React.memo com props estáveis e medir antes.
Desempenho e gestão de estado4 perguntas
Uma lista com alguns milhares de linhas está travando. Como você diagnostica e corrige?
O que observar: React Profiler para medir, virtualização da lista, keys estáveis e memoização das linhas, nessa ordem.
Quando o Context causa problemas de desempenho, e como você os evita?
O que observar: Todos os consumidores renderizam quando o valor muda; dividir contexts, memoizar o valor ou usar uma store com seletores.
Como você decide entre estado local, estado elevado, Context e uma store externa como Redux ou Zustand?
O que observar: Começar local e subir só quando necessário, Context para dados pouco mutáveis e store para estado global que muda com frequência.
Qual é a diferença entre estado derivado e estado armazenado, e por que é melhor derivar?
O que observar: Calcular a partir do que já existe evita estados duplicados que saem de sincronia e efeitos desnecessários para mantê-los iguais.
Design de componentes e julgamento5 perguntas
Como você decide quando dividir um componente em vários?
O que observar: Responsabilidades distintas, reaproveitamento real e isolamento de estado, sem fragmentar em peças minúsculas sem motivo.
Como você faz busca de dados num componente, e onde ficam os estados de carregamento e de erro?
O que observar: Uma biblioteca como TanStack Query ou o mecanismo do framework, com carregamento, erro e vazio tratados de forma explícita e consistente.
Me conte sobre um componente ou padrão React que você refatorou. O que estava errado e o que você mudou?
O que observar: Uma história concreta com o problema, a mudança e o resultado em legibilidade, bugs ou desempenho.
Como você mantém uma aplicação React que está crescendo fácil de manter e de testar?
O que observar: Organização por funcionalidade, lógica fora do JSX, tipagem com TypeScript e testes do comportamento com Testing Library.
Um colega coloca regra de negócio direto num componente cheio de JSX. Como você trata isso no code review?
O que observar: Sugerir extrair para um hook ou módulo testável, explicando o ganho, sem transformar o review em discussão de gosto.
Dicas para a entrevista de Desenvolvedor React
- Investigue o modelo mental de renderização. Esse conceito sozinho prevê a competência em React melhor do que qualquer pergunta de API.
- Valorize quem só memoiza depois de medir, e não por reflexo.
- Preste atenção em raciocínios como “subi o estado aqui, mas não ali”. As fronteiras entre componentes revelam experiência.
- Peça uma história real de refatoração. Manter uma base de código React ensina lições que tutoriais não ensinam.
- Não supervalorize o conhecimento da API mais nova. Fundamentos sólidos importam muito mais do que o hook mais recente.
FAQ
Perguntas frequentes
Quantas perguntas de React fazer numa entrevista?
De seis a oito num horário de 45 a 60 minutos. Aprofundar hooks, renderização e uma discussão de design de componentes dá uma leitura melhor do que vinte definições rápidas.
Candidatos de React precisam dominar JavaScript puro?
Precisam. O entendimento de React se apoia nos fundamentos de JavaScript. Se closures e assincronia confundem o candidato, o modelo mental dele sobre React também vai ter lacunas.
Preciso avaliar os recursos mais novos do React?
Não com muito peso. Quem entende a fundo renderização, estado e efeitos se adapta rápido a APIs novas. Priorize os fundamentos em vez da última versão.
O que diferencia uma resposta júnior de uma sênior em React?
O júnior faz o componente funcionar. O sênior explica por que algo renderiza de novo, quando a memoização ajuda, onde o estado deve ficar e cita problemas de desempenho que de fato resolveu.
Como fazer a triagem de candidatos React antes da entrevista?
Use um teste de habilidades curto ou perguntas de triagem na candidatura para filtrar quem entende de verdade hooks e renderização antes de gastar tempo de entrevista. Na Hireaan, os testes são corrigidos pela IA e os candidatos aparecem ranqueados por aderência à vaga.
Mais bancos de perguntas de entrevista
- AndroidPerguntas para Desenvolvedor AndroidSaiba mais
- AWSPerguntas para Engenheiro de cloud AWSSaiba mais
- SegurançaPerguntas para Analista de cibersegurançaSaiba mais
- DevOpsPerguntas para Engenheiro DevOpsSaiba mais
- C# / .NETPerguntas para Desenvolvedor C# / .NETSaiba mais
- GoPerguntas para Desenvolvedor GoSaiba mais
Abriu a vaga de Desenvolvedor React? Rode o processo na Hireaan.
A IA ranqueia os candidatos, você agenda as entrevistas, aplica testes de habilidades e envia a proposta, com um preço fixo para o time inteiro.
- 14 dias grátis
- Sem cartão de crédito
- Cancele quando quiser
- Conforme a LGPD
