Pergunta de entrevista para Desenvolvedor React

Uma página está lançando um erro de hydration mismatch em produção. Como você rastreia isso?

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

Resposta rápida

Um mismatch significa que o HTML renderizado no servidor não bate com o primeiro render do cliente. As causas de sempre são datas e formatação de locale, valores aleatórios, ler window ou localStorage durante o render, e aninhamento de HTML inválido que o navegador conserta em silêncio. Leia o diff que o React loga para achar o nó, e então mova o valor para um efeito para que o primeiro render bata, ou renderize aquela parte só no cliente.

Por que os entrevistadores perguntam isso

Erros de hidratação são um rito de passagem para quem faz renderização no servidor, e a resposta mostra se você já entregou isso. O entrevistador quer uma abordagem sistemática em vez de um dar de ombros e um suppressHydrationWarning. Ele também está checando se você sabe por que mismatches importam, já que o React descarta o markup do servidor daquela subárvore e pode deixar event handlers presos nos nós errados.

Como estruturar sua resposta

  • Defina o mismatch como HTML do servidor contra o primeiro render do cliente.
  • Liste os suspeitos de sempre em ordem de probabilidade.
  • Descreva como você estreita a busca a partir do diff logado.
  • Dê os consertos corretos e quando suprimir é aceitável.

Exemplo de resposta

Exemplo falado, em primeira pessoa

Primeiro eu leio o erro direito, porque o React 19 te dá um diff decente mostrando qual nó divergiu, e isso normalmente já basta para nomear o culpado. Depois eu passo pelos suspeitos. Qualquer coisa baseada em tempo é a número um, então uma data formatada ou um timestamp relativo renderizado no servidor num segundo e no cliente em outro. Depois formatação de locale e fuso horário, porque o servidor é quase sempre UTC. Depois ids aleatórios ou Math.random num componente. Depois qualquer coisa lendo window, matchMedia ou localStorage durante o render, o que é comum com alternadores de tema. E por fim aninhamento inválido, tipo uma div dentro de um p, onde o navegador conserta o HTML antes de o React ver. O conserto depende de qual for. Para valores que são genuinamente só do cliente eu renderizo um placeholder estável no servidor e defino o valor real num efeito, ou carrego aquele pedaço com lazy load e renderização no servidor desligada. Eu só recorro ao suppressHydrationWarning numa folha isolada como um timestamp, nunca num wrapper.

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

  • Por que um hydration mismatch é pior do que só um aviso no console?
  • Como você lidaria com um alternador de tema que lê o localStorage?
  • O que o React faz com o HTML do servidor de uma subárvore que deu mismatch?

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