Question d'entretien pour Développeur React

Une page lève une erreur de non-concordance d'hydratation en production. Comment la traquez-vous ?

Ce que le recruteur cherche à évaluer, comment structurer votre réponse et un exemple parlé à adapter.

Réponse rapide

Une non-concordance signifie que le HTML rendu sur le serveur ne correspond pas au premier rendu client. Les causes habituelles sont les dates et le formatage lié à la locale, les valeurs aléatoires, la lecture de window ou localStorage pendant le rendu, et l'imbrication HTML invalide que le navigateur répare en silence. Lisez la différence que React journalise pour trouver le nœud, puis soit déplacez la valeur dans un effet pour que le premier rendu corresponde, soit rendez cette partie uniquement côté client.

Pourquoi les recruteurs posent cette question

Les erreurs d'hydratation sont un rite de passage pour quiconque fait du rendu serveur, et la réponse montre si vous en avez livré. Le recruteur veut une approche systématique plutôt qu'un haussement d'épaules et un suppressHydrationWarning. Il vérifie aussi que vous savez pourquoi ces erreurs comptent, puisque React jette le markup serveur de ce sous-arbre et peut laisser des gestionnaires d'événements attachés aux mauvais nœuds.

Comment structurer votre réponse

  • Définissez la non-concordance comme le HTML serveur face au premier rendu client.
  • Listez les suspects habituels par ordre de probabilité.
  • Décrivez comment vous resserrez à partir de la différence journalisée.
  • Donnez les bons correctifs et le moment où la suppression est acceptable.

Exemple de réponse

Exemple parlé, à la première personne

D'abord je lis correctement l'erreur, parce que React 19 vous donne une différence correcte montrant quel nœud diverge, et ça suffit en général à nommer le coupable. Ensuite je passe les suspects en revue. Tout ce qui touche au temps arrive en tête, donc une date formatée ou un horodatage relatif rendu sur le serveur à une seconde et sur le client à une autre. Puis le formatage de locale et de fuseau, parce que le serveur est presque toujours en UTC. Puis les identifiants aléatoires ou Math.random dans un composant. Puis tout ce qui lit window, matchMedia ou localStorage pendant le rendu, ce qui est courant avec les bascules de thème. Et enfin l'imbrication invalide, comme un div dans un p, où le navigateur corrige le HTML avant que React ne le voie. Le correctif dépend du cas. Pour les valeurs vraiment côté client, je rends un espace réservé stable sur le serveur et je pose la vraie valeur dans un effet, ou je charge ce morceau en lazy avec le rendu serveur désactivé. Je ne sors suppressHydrationWarning que sur une feuille isolée comme un horodatage, jamais sur un conteneur.

Vous passez cet entretien bientôt ? GhostPilot écoute votre appel en direct, repère la question dès qu'elle est posée et affiche une réponse structurée à l'écran en temps réel. Essayez-le lors de votre prochain entretien blanc, ou prenez un Session Pass à $29, sans abonnement, pour le jour J.

Voir comment ça marche

Questions de relance à prévoir

  • Pourquoi une non-concordance d'hydratation est-elle pire qu'un simple avertissement console ?
  • Comment géreriez-vous une bascule de thème qui lit localStorage ?
  • Que fait React du HTML serveur d'un sous-arbre qui n'a pas concordé ?

Autres questions pour Développeur React

Votre recruteur posera sa propre version de celle-ci. Collez votre véritable fiche de poste dans le Question Predictor gratuit et obtenez les 20 questions que ce poste a le plus de chances de poser, avec ce que chacune cherche vraiment à sonder.

Prédire mes questions

Répétez les questions difficiles avant qu'on vous les pose

Entraînez-vous avec un copilote en direct, puis présentez-vous prêt. Un Session Pass à $29 vous accompagne pendant l'entretien, sans abonnement et sans engagement.

Obtenir GhostPilot