Pular para o conteúdo
Hireaan

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

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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

  1. 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.

  2. 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.

  3. 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.

  4. 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

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

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