Pergunta de entrevista para Desenvolvedor React

Como você decide onde um determinado pedaço de estado deve morar?

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

Resposta rápida

Comece o mais local possível, dentro do componente que usa, e suba só até o ancestral comum mais próximo quando irmãos realmente precisarem compartilhar. Se for dado de servidor, ele pertence a uma camada de dados com cache, não ao estado de componente. Se o usuário deveria conseguir mandar um link para aquilo, como filtros ou a aba atual, coloque na URL. Uma store global é o último recurso.

Por que os entrevistadores perguntam isso

Essa pergunta revela instintos de arquitetura mais do que qualquer trivia de framework. O entrevistador quer ver que você classifica o estado por tipo, dado de servidor versus estado de UI versus estado de URL, em vez de jogar tudo numa store global por padrão. Ele também está de olho na consciência do custo de içar cedo demais, já que estado empurrado muito para cima causa re-renders amplos e prop drilling que são dolorosos de desfazer depois.

Como estruturar sua resposta

  • Classifique o estado primeiro: servidor, URL, UI local ou realmente global.
  • Enuncie o padrão de manter o mais local possível.
  • Dê seu gatilho para içar ou mover para uma store.
  • Nomeie o custo de errar em qualquer uma das direções.

Exemplo de resposta

Exemplo falado, em primeira pessoa

Meu primeiro movimento é descobrir que tipo de estado é aquilo, porque a maioria das coisas que as pessoas chamam de estado não é estado local de verdade. Se veio do servidor, vai para um cache de query, aí eu ganho deduplicação, revalidação e tratamento de obsolescência em vez de fazer isso na mão com useState e um efeito. Se deve sobreviver a um refresh ou ser compartilhável como link, tipo os filtros ativos ou qual aba está aberta, vai para a URL. O que sobra é estado de UI de verdade, e isso começa no componente que usa. Eu só iço quando um segundo componente realmente precisa, e mesmo assim só até o pai comum mais próximo. Stores globais eu guardo para coisas que são de fato de aplicação inteira, como o usuário atual ou uma conexão websocket. A falha que eu mais limpei foi estado que foi içado para um provider no topo porque dois componentes precisaram dele uma vez, e dois anos depois tudo re-renderiza a cada tecla e ninguém tem coragem de trazer de volta para baixo.

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

  • Como você decide que algo pertence à URL em vez de à memória?
  • O que quebra quando dado de servidor é duplicado no estado de componente?
  • Como você refatoraria um estado que foi içado alto demais?

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