Pergunta de entrevista para Desenvolvedor React

Explique componentes controlados versus não controlados, e como você escolhe entre eles para um formulário.

O que o entrevistador está avaliando, como estruturar sua resposta e um exemplo falado que você pode adaptar.

Resposta rápida

Em um componente controlado o estado do React é a fonte da verdade: o input lê o valor do estado e cada tecla passa pelo onChange. Em um componente não controlado o DOM guarda o valor e você o lê com uma ref ou a partir dos dados do formulário no submit. Controlado te dá validação ao vivo e UI derivada; não controlado significa muito menos renders e menos código em formulários grandes.

Por que os entrevistadores perguntam isso

O entrevistador está checando se você sabe onde o estado de fato vive e se você não deixa tudo controlado por hábito. Ele também quer ver consciência do custo, já que um input controlado re-renderiza a subárvore dele a cada tecla, o que é tranquilo com três campos e doloroso com oitenta. Uma resposta moderna menciona form actions e bibliotecas que mantêm os inputs não controlados de propósito.

Como estruturar sua resposta

  • Defina os dois pelo lugar onde o valor mora.
  • Diga o que cada um te dá, validação ao vivo versus menos renders.
  • Dê seu padrão e o ponto em que você troca.
  • Mencione form actions ou uma biblioteca de formulário e por que elas puxam para o não controlado.

Exemplo de resposta

Exemplo falado, em primeira pessoa

Controlado quer dizer que o React é dono do valor: value vem do estado, onChange escreve de volta, e o input não muda sem um render. Não controlado quer dizer que o DOM é o dono e eu só leio quando preciso, seja por uma ref ou pelos dados enviados do formulário. Meu padrão em formulários pequenos é controlado, porque normalmente eu quero validação enquanto o usuário digita ou um campo que depende de outro. Quando o formulário passa de uns quinze ou vinte inputs, ou quando eu tenho um campo que dispara um re-render caro a cada tecla, eu viro para não controlado e valido no blur e no submit. É isso que as bibliotecas de formulário populares fazem por baixo dos panos, elas registram os inputs e assinam de forma estreita em vez de re-renderizar o formulário inteiro. Com as form actions do React 19 eu puxo ainda mais para o não controlado, porque a action recebe o FormData de graça, então num formulário simples de criar ou editar eu consigo pular o estado por completo e só tratar os estados de pendente e de erro com o useActionState.

Vai encarar essa entrevista em breve? O GhostPilot escuta a sua chamada ao vivo, identifica a pergunta no instante em que ela é feita e coloca uma resposta estruturada na sua tela em tempo real. Teste na sua próxima entrevista simulada ou pegue um Session Pass de $29, sem assinatura, para a hora da verdade.

Veja como funciona

Perguntas de acompanhamento que você pode esperar

  • Qual é o aviso que o React dá quando um input passa de não controlado para controlado, e por quê?
  • Como você validaria um formulário não controlado no submit?
  • Como as form actions do React 19 mudam sua abordagem aqui?

Mais perguntas para Desenvolvedor React

Seu entrevistador vai fazer a própria versão desta. Cole a descrição real da vaga no Question Predictor gratuito e receba as 20 perguntas que essa vaga tem mais chance de fazer, com o que cada uma está de fato sondando.

Prever minhas perguntas

Ensaie as perguntas difíceis antes que elas apareçam

Pratique com um copiloto ao vivo e depois entre pronto. Um Session Pass de $29 te leva até o fim da entrevista, sem assinatura e sem amarras.

Instalar o GhostPilot