Case a ferramenta com o tipo de estado. useState local para qualquer coisa que um componente é dono, a URL para qualquer coisa compartilhável ou marcável, um cache de query para dados de servidor, e Context para valores estáveis como tema ou usuário atual. Recorra a uma store só quando você tiver estado de cliente realmente global que muitos componentes não relacionados leem e escrevem, e onde você precisa de seletores para não re-renderizar tudo.
Por que os entrevistadores perguntam isso
Essa é uma pergunta de arquitetura disfarçada de pergunta de ferramenta. O entrevistador quer ouvir você classificar o estado antes de escolher ferramentas, porque a maioria das stores Redux por aí é noventa por cento resposta de API em cache que uma biblioteca de query trataria melhor. Ele também está checando se você consegue justificar uma escolha por razões de time e base de código em vez de preferência pessoal ou do que está na moda.
Como estruturar sua resposta
- Classifique o estado primeiro: servidor, URL, local ou cliente global.
- Atribua a ferramenta padrão para cada categoria.
- Dê seu gatilho para introduzir uma store.
- Mencione fatores de time: consistência, devtools, custo de onboarding.
Exemplo de resposta
Eu tento descobrir que tipo de estado é antes de escolher qualquer coisa, porque as maiores vitórias vêm de não colocar aquilo numa store logo de cara. Dado de servidor vai para um cache de query, já que precisa de deduplicação, revalidação e invalidação, e nada disso é gerenciamento de estado, é cache. Qualquer coisa que um usuário possa querer mandar por link ou recuperar num refresh, tipo filtros ou a aba aberta, vai na URL. Tudo que um único componente é dono fica no useState. Context eu uso para coisas estáveis, o tema, o usuário logado, uma instância de client, porque ele não tem seletores e atualizações frequentes ficam caras. O que sobra é estado de cliente realmente global, tipo um editor de múltiplos painéis com undo compartilhado, e é aí que eu trago uma store. Eu puxo para uma pequena com seletores baseados em hooks em vez de Redux num projeto novo, mas se um time já conhece Redux Toolkit e tem os hábitos de devtools, consistência ganha da minha preferência todas as vezes.
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
- O que te faria escolher Redux Toolkit em vez de uma store mais leve?
- Como você lida com estado derivado na store que você escolher?
- Como você migraria uma store que é majoritariamente respostas de API em cache?
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