Question d'entretien pour Développeur React

Quelles sont les règles des hooks, et pourquoi existent-elles ?

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

Réponse rapide

N'appelez les hooks qu'au niveau supérieur d'un composant ou d'un autre hook, jamais dans une condition, une boucle ou un callback imbriqué, et uniquement depuis des fonctions React. La raison, c'est que React stocke l'état des hooks sous forme de liste ordonnée sur la fibre et associe chaque appel à un emplacement par ordre d'appel, pas par nom. Changez l'ordre entre deux rendus et tous les hooks après ce point lisent le mauvais emplacement.

Pourquoi les recruteurs posent cette question

Les règles sont faciles à réciter, donc le recruteur demande en réalité le pourquoi. Un candidat qui explique la liste ordonnée d'emplacements comprend l'implémentation et raisonnera correctement sur les hooks personnalisés, la logique conditionnelle et les suppressions de lint. Ça ouvre aussi une relance naturelle sur la façon dont vous structurez le code quand vous n'avez besoin de quelque chose que parfois, et c'est là que les candidats les plus faibles se mettent à écrire des hooks dans des blocs if.

Comment structurer votre réponse

  • Énoncez les deux règles simplement et brièvement.
  • Expliquez le mécanisme d'emplacement par ordre d'appel comme la raison.
  • Décrivez ce qui casse vraiment quand l'ordre change.
  • Dites comment vous gérez les besoins conditionnels sans enfreindre les règles.

Exemple de réponse

Exemple parlé, à la première personne

Deux règles : les hooks vont au niveau supérieur, et ils ne sont appelés que depuis un composant ou un autre hook. La raison, c'est l'implémentation. React ne connaît pas le nom de vos hooks, il tient une liste sur la fibre et déplace un curseur dedans pendant que votre fonction s'exécute, donc le premier appel à useState prend l'emplacement un, le deuxième l'emplacement deux, et ainsi de suite. Si vous enveloppez un hook dans un if, alors sur certains rendus le curseur se décale d'une position, et tous les hooks suivants lisent l'état du hook précédent. Vous obtenez des pannes bizarres où un booléen se transforme en fonction. Quand j'ai besoin de quelque chose conditionnellement, j'appelle toujours le hook et je fais en sorte que le hook lui-même ne fasse rien, par exemple en passant un flag enabled à un hook de requête, ou je remonte la branche d'un niveau pour que les deux chemins soient des composants séparés. Je garde les règles eslint actives et je traite une suppression comme quelque chose qui exige un commentaire expliquant précisément pourquoi.

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

  • Comment géreriez-vous un hook dont vous n'avez besoin que parfois ?
  • Que détecte réellement le plugin eslint, et que lui échappe-t-il ?
  • Comment écririez-vous un hook personnalisé qui en compose deux autres ?

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