useTransition marque une mise à jour d'état comme non urgente. React garde l'écran courant interactif, rend le nouveau résultat en arrière-plan, et peut jeter ce travail si quelque chose de plus urgent arrive, comme la frappe au clavier. Vous récupérez aussi un indicateur isPending pour un état de chargement discret. Utilisez-le pour les changements de vue coûteux, comme filtrer une grande liste ou changer d'onglet, jamais pour la frappe elle-même.
Pourquoi les recruteurs posent cette question
Cela vérifie si vous comprenez le rendu concurrent comme une fonctionnalité d'ordonnancement plutôt que comme un mot à la mode. Le recruteur veut que vous distinguiez les mises à jour urgentes des non urgentes, que vous sachiez que la transition se rend en arrière-plan au lieu de faire du debounce, et que vous situiez useTransition par rapport à useDeferredValue. Les candidats qui l'ont mis en production mentionnent en général l'indicateur pending et le fait d'éviter un clignotement brutal du fallback.
Comment structurer votre réponse
- Définissez en une ligne les mises à jour urgentes contre non urgentes.
- Dites ce que React fait du travail basse priorité, y compris l'interrompre.
- Donnez un cas concret où vous l'avez utilisé.
- Comparez-le à useDeferredValue et au debounce.
Exemple de réponse
L'idée, c'est que toutes les mises à jour ne méritent pas la même priorité. Taper dans un champ de recherche doit s'afficher immédiatement, sinon le champ paraît cassé. Refaire le rendu de trois mille résultats filtrés, non. Donc je garde la valeur du champ en mise à jour d'état normale et j'enveloppe la coûteuse dans startTransition. React rend alors l'arbre lourd en arrière-plan, laisse les anciens résultats à l'écran pendant qu'il travaille, et si l'utilisateur tape à nouveau, il abandonne ce rendu et recommence. Je m'en suis servi sur une page de recherche où chaque frappe reconstruisait une grosse grille de résultats, et le champ avait cette horrible demi-seconde de latence. Envelopper la mise à jour des résultats dans une transition a réglé la sensation de frappe sans aucun debounce, et j'ai utilisé isPending pour estomper légèrement les résultats périmés afin que ça n'ait pas l'air figé. useDeferredValue fait quelque chose de proche, et je le sors quand je n'ai que la valeur et pas le setter, par exemple quand la valeur arrive en prop.
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
- Quelle est la différence entre useTransition et useDeferredValue ?
- Qu'arrive-t-il à une transition si l'utilisateur tape à nouveau en plein rendu ?
- Peut-on passer une fonction asynchrone à startTransition, et qu'est-ce qui a changé 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