useTransition marca uma atualização de estado como não urgente. O React mantém a tela atual interativa, renderiza o novo resultado em segundo plano e pode jogar esse trabalho fora se algo mais urgente, como digitação, chegar. Você também ganha uma flag isPending para um estado de carregamento sutil. Use para mudanças de view caras, como filtrar uma lista grande ou trocar de aba, nunca para a tecla em si.
Por que os entrevistadores perguntam isso
Isso checa se você entende renderização concorrente como um recurso de escalonamento e não como palavra da moda. O entrevistador quer que você distinga atualizações urgentes de não urgentes, que saiba que a transição renderiza em segundo plano em vez de fazer debounce, e que posicione o useTransition contra o useDeferredValue. Candidatos que já colocaram isso em produção normalmente mencionam a flag de pendente e evitar um piscar brusco do fallback.
Como estruturar sua resposta
- Defina atualizações urgentes versus não urgentes em uma linha.
- Diga o que o React faz com o trabalho de baixa prioridade, incluindo interrompê-lo.
- Dê um caso concreto em que você usou.
- Contraste com useDeferredValue e com debounce.
Exemplo de resposta
A ideia é que nem toda atualização merece a mesma prioridade. Digitar numa caixa de busca precisa aparecer na hora ou o input parece quebrado. Re-renderizar três mil resultados filtrados não. Então eu mantenho o valor do input como uma atualização de estado normal e embrulho a cara no startTransition. O React então renderiza a árvore pesada em segundo plano, mantém os resultados antigos na tela enquanto trabalha, e se o usuário digitar de novo ele abandona aquele render e recomeça. Eu usei isso numa página de busca onde cada tecla reconstruía uma grade grande de resultados, e o input tinha aquele lag horrível de meio segundo. Embrulhar a atualização dos resultados numa transição consertou a sensação da digitação sem nenhum debounce, e eu usei isPending para deixar os resultados obsoletos levemente esmaecidos, para não parecer travado. O useDeferredValue faz algo parecido, e eu recorro a ele quando eu só tenho o valor e não o setter, por exemplo quando o valor chega como prop.
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 funcionaPerguntas de acompanhamento que você pode esperar
- Qual é a diferença entre useTransition e useDeferredValue?
- O que acontece com uma transição se o usuário digitar de novo no meio do render?
- Você pode passar uma função async para o startTransition, e o que mudou no React 19?
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