Coloque os dados numa camada de cache chaveada por requisição em vez de no estado de componente. Uma biblioteca de query deduplica requisições concorrentes para a mesma chave, serve dados do cache na hora enquanto revalida em segundo plano, e te dá um lugar só para invalidar depois de uma mutação. Do lado do servidor, cache por requisição mais prefetch na rota significa que o cliente muitas vezes já tem os dados antes de o componente montar.
Por que os entrevistadores perguntam isso
O entrevistador está testando se você distingue estado de servidor de estado de UI, que é a maior decisão de arquitetura na maioria das aplicações React. Ele quer ouvir sobre chaves de cache, obsolescência e invalidação em vez de uma store global entupida de respostas de API. Mencionar prefetch e deduplicação de requisições mostra que você já lidou com o problema do waterfall numa aplicação real e não num tutorial.
Como estruturar sua resposta
- Nomeie o erro de categoria: dado de servidor é cache, não estado.
- Explique deduplicação, stale time e revalidação em segundo plano.
- Cubra invalidação depois de mutações e quem é dono das chaves.
- Acrescente prefetch ou busca no servidor para matar o waterfall.
Exemplo de resposta
A causa raiz normalmente é que o dado está sendo tratado como estado de componente, então cada tela tem a própria cópia e o próprio fetch. Eu movo para um cache de query chaveado por algo com significado, tipo o nome do recurso mais o id. Uma vez chaveado, três componentes pedindo a mesma coisa numa mesma passada de render produzem uma requisição de rede, e a segunda tela ganha um paint instantâneo do cache enquanto uma revalidação acontece quietinha atrás. Eu defino o stale time por recurso e não globalmente, porque um perfil de usuário pode ficar obsoleto por minutos e um status de pedido ao vivo não pode. As mutações então invalidam chaves específicas em vez de tudo, e eu mantenho os construtores de chave num módulo só para ninguém inventar uma chave levemente diferente e quebrar o cache em silêncio. Se o framework suportar, eu faço prefetch na rota ou busco no servidor, para o dado já estar a caminho antes de o componente montar, que é o que de fato remove o waterfall em vez de só escondê-lo atrás de um spinner.
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
- Como você decide o stale time de um determinado recurso?
- Como você lidaria com uma mutação que afeta várias listas em cache?
- Qual é a sua abordagem quando duas telas precisam de formatos diferentes do mesmo dado?
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