Question d'entretien pour Développeur React

Plusieurs écrans ont besoin des mêmes données serveur et elles sont refetchées en permanence. Comment géreriez-vous ça ?

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

Réponse rapide

Mettez les données dans une couche de cache indexée par requête plutôt que dans l'état des composants. Une bibliothèque de requêtes déduplique les appels concurrents pour une même clé, sert instantanément les données en cache pendant qu'elle revalide en arrière-plan, et vous donne un seul endroit où invalider après une mutation. Côté serveur, un cache au niveau de la requête plus du préchargement dans la route font que le client a souvent les données avant même que le composant ne se monte.

Pourquoi les recruteurs posent cette question

Le recruteur teste si vous distinguez l'état serveur de l'état d'interface, ce qui est la plus grande décision d'architecture dans la plupart des applications React. Il veut entendre parler de clés de cache, de péremption et d'invalidation plutôt que d'un store global bourré de réponses d'API. Mentionner le préchargement et la déduplication des requêtes montre que vous avez affronté le problème de cascade dans une vraie application et pas dans un tutoriel.

Comment structurer votre réponse

  • Nommez l'erreur de catégorie : les données serveur sont un cache, pas de l'état.
  • Expliquez la déduplication, le stale time et la revalidation en arrière-plan.
  • Couvrez l'invalidation après mutation et qui possède les clés.
  • Ajoutez le préchargement ou la récupération côté serveur pour tuer la cascade.

Exemple de réponse

Exemple parlé, à la première personne

La cause profonde, c'est en général que la donnée est traitée comme de l'état de composant, donc chaque écran possède sa propre copie et sa propre récupération. Je la déplace dans un cache de requêtes indexé par quelque chose de significatif, comme le nom de la ressource plus l'id. Une fois indexée, trois composants qui demandent la même chose pendant une même passe de rendu ne produisent qu'une seule requête réseau, et le deuxième écran s'affiche instantanément depuis le cache pendant qu'une revalidation se fait discrètement derrière. Je règle le stale time par ressource plutôt que globalement, parce qu'un profil utilisateur peut être périmé quelques minutes et un statut de commande en direct non. Les mutations invalident ensuite des clés précises au lieu de tout, et je garde les constructeurs de clés dans un seul module pour que personne n'invente une clé légèrement différente et ne casse le cache en silence. Si le framework le permet, je précharge dans la route ou je récupère côté serveur, pour que la donnée soit déjà en vol avant le montage du composant, et c'est ça qui supprime vraiment la cascade au lieu de la cacher derrière un spinner.

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 décidez-vous du stale time d'une ressource donnée ?
  • Comment géreriez-vous une mutation qui affecte plusieurs listes en cache ?
  • Quelle est votre approche quand deux écrans ont besoin de formes différentes de la même donnée ?

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