Utilisez useRef quand vous avez besoin d'une valeur mutable qui survit aux rendus mais ne doit pas en déclencher un : un nœud DOM, un id de minuteur, la valeur précédente d'une prop, un drapeau qui note qu'une chose a déjà eu lieu. Utilisez useState quand la valeur doit apparaître dans l'interface, parce qu'écrire dans une ref ne planifie aucun rendu. La règle empirique est simple : si l'écran doit changer, c'est de l'état.
Pourquoi les recruteurs posent cette question
C'est un test rapide pour voir si vous comprenez le cycle de rendu. Le recruteur veut d'abord entendre la différence sur le déclenchement du rendu, puis de bons réflexes sur le moment où une ref est le bon outil. Il relance souvent sur la lecture ou l'écriture de refs pendant le rendu, et c'est là que les candidats qui n'utilisent les refs que pour des nœuds DOM trébuchent, et là que la distinction entre mutable et rendu compte.
Comment structurer votre réponse
- Commencez par la différence qui compte : les refs ne déclenchent pas de rendu.
- Listez les trois ou quatre usages légitimes d'une ref.
- Donnez la règle empirique pour choisir.
- Mentionnez qu'on ne doit ni lire ni écrire les refs pendant le rendu.
Exemple de réponse
La ligne de partage, c'est de savoir si changer la valeur doit repeindre l'écran. L'état, oui ; une ref, non. Donc une ref, c'est là que je mets tout ce qui relève de la comptabilité interne plutôt que de l'interface : le nœud DOM que je dois cibler ou mesurer, un id d'intervalle que je dois nettoyer au démontage, la dernière valeur d'une prop pour pouvoir comparer, un drapeau du genre est-ce que je l'ai déjà fait. L'erreur classique, c'est de stocker quelque chose dans une ref et de se demander pourquoi l'interface ne se met jamais à jour, et l'image miroir, c'est de mettre une position de défilement dans l'état et de refaire le rendu à chaque événement de scroll. Je garde aussi la règle de ne pas lire ni écrire de refs pendant le rendu, seulement dans les effets et les gestionnaires d'événements, parce que pendant le rendu React attend une fonction pure et une lecture de ref peut donner des valeurs différentes d'une passe à l'autre. Un changement agréable dans React 19, c'est que ref est désormais une prop normale pour les composants fonction, donc j'ai arrêté d'envelopper les choses dans forwardRef.
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 marcheQuestions de relance à prévoir
- Comment obtiendriez-vous la valeur précédente d'une prop ?
- Pourquoi ne faut-il pas lire ni écrire une ref pendant le rendu ?
- Comment attachez-vous une ref à un composant enfant dans React 19 ?
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