Um componente suspende quando lê uma promise que ainda não resolveu. O React sobe até o Suspense boundary mais próximo, mostra o fallback dele até a promise resolver, e então renderiza o conteúdo real. No React 19 você lê uma promise com o hook use, normalmente criada em um Server Component ou num cache e passada para baixo. O Suspense coordena estados de carregamento; ele não busca nada sozinho.
Por que os entrevistadores perguntam isso
Muita gente consegue descrever Suspense como um wrapper de spinner. O entrevistador quer saber se você entende o mecanismo, que suspender é um modelo de throw e retry, e o detalhe importante de que quem busca é o framework ou a biblioteca. Ele também está checando se você sabe onde posicionar os boundaries para que um painel lento não apague a página inteira.
Como estruturar sua resposta
- Diga o que significa suspender e o que o boundary faz.
- Aponte de onde a promise deve vir, e de onde ela não pode vir.
- Explique o posicionamento dos boundaries e o streaming.
- Mencione o risco de waterfall e como você evita.
Exemplo de resposta
Suspense é uma primitiva de coordenação, não uma camada de dados. Quando um componente lê uma promise que não resolveu, ele suspende, o React acha o boundary mais próximo acima dele, renderiza aquele fallback, e tenta a subárvore de novo quando a promise resolve. No React 19 o jeito de ler uma é o hook use, e a regra importante é que a promise não pode ser criada durante o render do componente que chama use, senão você fabrica uma promise nova a cada tentativa e ela nunca resolve. Então na prática a promise começa em um Server Component ou sai de um cache e é passada para baixo. Do lado do servidor isso combina com streaming: a casca vai embora na hora, e as seções mais lentas chegam em stream conforme os dados delas ficam prontos. Para posicionar boundaries eu tento embrulhar a menor coisa pela qual um usuário aceitaria ver um skeleton, para que um painel lento de recomendações não segure os detalhes do produto. A armadilha são awaits sequenciais criando um waterfall, então eu disparo as buscas independentes juntas antes de dar await nelas.
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
- Por que você não deve criar a promise dentro do componente que chama use?
- Como os Suspense boundaries interagem com renderização em stream no servidor?
- Como você evita um waterfall de requisições em componentes aninhados?
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