P
prepair.app
Começar entrevista →
EnglishУкраїнськаРусскийDeutsch
⚛️

Junior React FrontendPerguntas de entrevista React

Junior · sem experiência / menos de 1 ano

Entrevistas de React misturam especificidades do framework — hooks, rendering, estado — com fundamentos de JavaScript que decidem se você realmente entende o que o React está fazendo. Aqui estão as perguntas mais comuns com respostas modelo. Junior: teoria básica, definições e casos práticos simples.

Experimente — sem necessidade de conta
Preparando sua pergunta…

Temas para se preparar

Hooks: useState, useEffect, useMemo
Virtual DOM e reconciliação
Gerenciamento de estado
Otimização de render
JavaScript: closures, event loop
TypeScript em React

7 perguntas de nível Junior com respostas

1

O que o array de dependências do useEffect realmente controla?

Resposta

Ele diz ao React quais valores o efeito lê, então o efeito só roda de novo quando um deles muda. Um array vazio significa rodar uma vez após a montagem; omitir o array por completo significa rodar após cada render, o que é como começam os loops infinitos. Deixar de fora um valor usado é a outra falha — o efeito fecha sobre um valor obsoleto e continua usando ele para sempre.

2

Por que o React precisa de uma key nos itens de uma lista, e por que o índice é má ideia?

Resposta

A key diz ao React qual item na lista nova corresponde a qual na antiga, para que ele possa mover um nó em vez de reconstruí-lo. Usar o índice quebra isso assim que a lista é reordenada ou um item é removido: o React combina por posição, então o componente errado mantém o estado errado — um checkbox marcado pula para outra linha.

3

Qual é a diferença entre props e state?

Resposta

Props são passadas pelo pai e são somente leitura no componente que as recebe. State pertence ao componente e mudá-lo dispara um re-render. Se dois componentes precisam do mesmo valor, ele pertence ao pai comum mais próximo e desce como props — é isso que significa "elevar o estado".

4

Por que você nunca deve mutar o state diretamente?

Resposta

O React decide se re-renderiza comparando o valor anterior com o novo por referência. Fazer push em um array deixa a referência inalterada, então o React conclui que nada aconteceu e pula o render — os dados foram atualizados e a tela não. Em vez disso você substitui o valor: um array novo, um objeto novo.

5

O que é um componente controlado?

Resposta

Um input controlado tem seu valor gerenciado pelo state do React e um onChange que escreve de volta, então o state é a única fonte de verdade. Um não controlado mantém seu valor no DOM e você o lê via ref. Controlado é o padrão porque validação, formatação e desabilitar condicionalmente todos precisam do valor durante o render; não controlado serve para casos onde re-renderizar a cada tecla é desperdício.

6

Por que não se pode chamar hooks dentro de uma condição?

Resposta

O React identifica hooks pela ordem de chamada, não pelo nome — o primeiro useState em um componente é sempre o mesmo pedaço de estado. Um hook dentro de um if muda essa ordem entre renders, então o React entrega o estado errado para o hook errado. Por isso a regra é chamá-los incondicionalmente no nível superior, colocando a condição dentro do hook em vez disso.

7

O que o React faz quando o state é setado para o mesmo valor?

Resposta

Ele sai fora: se o novo valor é idêntico por Object.is ao atual, o React não re-renderiza. Por isso setar um primitivo para o mesmo número é grátis, e por isso setar um objeto estruturalmente idêntico mas recém-criado não é — a referência difere, então o React re-renderiza mesmo que nada tenha mudado visivelmente.

🦎

Só ler as respostas não basta

Numa entrevista de verdade você fala sob pressão. O Cam faz essas mesmas perguntas, avalia cada resposta e mostra exatamente o que melhorar.

Praticar entrevista de Junior React Frontend →
Grátis · 3 entrevistas por mês

Outros níveis — React Frontend

Middle React FrontendSenior React FrontendTodas as perguntas de React Frontend

Outras especializações

🔍Junior QA Manual🤖Junior QA AutomationJunior Java Backend🐍Junior Python Backend🐘Junior PHP Backend🦫Junior Go Backend🟢Junior Node.js Backend💎Junior Ruby on Rails🔷Junior C++🟨Junior JavaScript