Question d'entretien pour Développeur React

Comment choisissez-vous entre l'état local, le Context et une bibliothèque d'état comme Redux ou Zustand ?

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

Réponse rapide

Faites correspondre l'outil à la nature de l'état. useState local pour tout ce qu'un seul composant possède, l'URL pour tout ce qui est partageable ou marquable, un cache de requêtes pour les données serveur, et le Context pour les valeurs stables comme le thème ou l'utilisateur courant. Ne sortez un store que quand vous avez un état client réellement global que beaucoup de composants sans lien lisent et écrivent, et où il vous faut des sélecteurs pour éviter de tout re-rendre.

Pourquoi les recruteurs posent cette question

C'est une question d'architecture déguisée en question d'outillage. Le recruteur veut vous entendre classer l'état avant de choisir des outils, parce que la plupart des stores Redux dans la nature sont à quatre-vingt-dix pour cent des réponses serveur mises en cache qu'une bibliothèque de requêtes gérerait mieux. Il vérifie aussi que vous savez justifier un choix sur des critères d'équipe et de base de code plutôt que sur une préférence personnelle ou la mode du moment.

Comment structurer votre réponse

  • Classez d'abord l'état : serveur, URL, local, ou client global.
  • Attribuez l'outil par défaut à chaque catégorie.
  • Donnez votre déclencheur pour introduire un store tout court.
  • Mentionnez les facteurs d'équipe : cohérence, devtools, coût d'intégration.

Exemple de réponse

Exemple parlé, à la première personne

J'essaie de déterminer de quelle sorte d'état il s'agit avant de choisir quoi que ce soit, parce que les plus gros gains viennent du fait de ne pas le mettre dans un store du tout. Les données serveur vont dans un cache de requêtes, puisqu'il leur faut de la déduplication, de la revalidation et de l'invalidation, et rien de tout ça n'est de la gestion d'état, c'est du cache. Tout ce qu'un utilisateur pourrait vouloir mettre en lien ou retrouver après un rafraîchissement, comme les filtres ou l'onglet ouvert, va dans l'URL. Tout ce qu'un seul composant possède reste dans useState. Le Context, je m'en sers pour les choses stables : le thème, l'utilisateur connecté, une instance de client, parce qu'il n'a pas de sélecteurs et que les mises à jour fréquentes y coûtent cher. Ce qui reste est de l'état client réellement global, comme un éditeur multi-panneaux avec un annuler partagé, et c'est là que j'amène un store. Je penche pour un petit store à sélecteurs basés sur des hooks plutôt que Redux sur un nouveau projet, mais si une équipe connaît déjà Redux Toolkit et a les réflexes devtools, la cohérence bat ma préférence à tous les coups.

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

  • Qu'est-ce qui vous ferait choisir Redux Toolkit plutôt qu'un store plus léger ?
  • Comment gérez-vous l'état dérivé dans le store que vous choisissez ?
  • Comment migreriez-vous un store composé surtout de réponses d'API mises en cache ?

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