Les entretiens React ont changé sans faire de bruit. Dix ans de tutoriels ont appris à tout le monde à réciter la différence entre props et state, et les recruteurs ont cessé de trouver ça utile vers 2021. Ce qu'on demande maintenant est plus dur et plus honnête : que fait vraiment React quand vous appelez un setter, pourquoi cette liste se re-rend, où doivent vivre ces données, et qu'est-ce qui casse quand vous les mettez au mauvais endroit. Voici les questions que vous affronterez vraiment, ce que chacune sonde, et comment se construit une bonne réponse.
Ce sont les schémas du métier en général ; si vous voulez la liste courte pour un entretien précis, collez l'annonce réelle dans le Question Predictor gratuit et il vous renvoie les vingt questions que cette annonce a le plus de chances de produire.
Que testent vraiment les entretiens React en 2026 ?
Quatre choses, à peu près dans cet ordre : comprenez-vous le modèle de rendu plutôt que la surface de l'API, placez-vous l'état à des endroits sensés, savez-vous trouver un problème de performance avec des preuves plutôt qu'au pifomètre, et écrivez-vous du code que quelqu'un d'autre peut tester. Les questions pièges ont largement laissé place au raisonnement sur les compromis, parce que l'outillage écrit le code répétitif de toute façon.
- Les hooks à la loupe : le comportement des closures qui piège tout le monde, et savoir quand un effet est le mauvais outil.
- Le modèle de rendu : ce qui déclenche un rendu, ce que la réconciliation fait de la sortie, pourquoi les clés comptent.
- L'architecture de l'état : local, remonté, contexte ou store, et la séparation entre état serveur et état client.
- La performance mesurée : diagnostiquer dans le Profiler plutôt que saupoudrer de la mémoïsation en espérant.
- Le sens du test : ce que vous testez, à quel niveau, et si vous traitez les états de chargement, vide et d'erreur sans qu'on vous le demande.
La séniorité change la pondération, pas les sujets. Les candidats confirmés raisonnent juste sur un composant. Les candidats seniors raisonnent sur une base de code : conventions, frontières, chemins de migration, et ce qu'ils refuseraient de faire.
À quoi ressemble le processus d'entretien pour un développeur React ?
Quatre ou cinq étapes : une préqualification par le recruteur, un test technique avec du code en direct, une épreuve de construction plus longue, une plongée React, et un tour comportemental. Les grandes entreprises ajoutent du system design frontend. L'épreuve de construction et la plongée décident de l'offre, donc concentrez-y votre préparation plutôt que de l'étaler uniformément.
- Préqualification par le recruteur (20 à 30 minutes). Disponibilité, salaire, un résumé de vos deux derniers postes.
- Test technique (45 à 60 minutes). Un éditeur partagé, un petit composant ou un exercice de débogage, parfois du JavaScript pur pour vérifier les fondations sous le framework.
- Épreuve de construction (60 à 90 minutes). Quelque chose de réel : un tableau filtrable, une autocomplétion, un formulaire en plusieurs étapes contre une fausse API. Noté sur le placement de l'état, les cas limites, et le fait que vous parliez pendant que vous travaillez.
- Plongée React (45 à 60 minutes). Rendu, internes des hooks, choix d'état, performance, et de plus en plus les composants serveur.
- Tour comportemental (45 minutes). Désaccords, revue de code, mentorat, et votre façon de gérer une spécification qui n'a aucun sens.
Les exercices à la maison reculent, en grande partie parce que les recruteurs savent qu'ils sont rendus avec l'aide de l'IA. Quand il en reste un, il est presque toujours suivi d'une session en direct où vous prolongez votre propre rendu, et c'est cette partie qui mérite d'être préparée.
Quelles questions sur les hooks React reviennent dans presque tous les entretiens ?
Quatre reviennent en boucle : l'état périmé dans une closure, ce que contrôle le tableau de dépendances, la différence entre les outils de mémoïsation, et l'écriture d'un hook personnalisé sur-le-champ. Toutes les quatre testent la même chose au fond : savez-vous qu'une fonction composant s'exécute de nombreuses fois et que chaque exécution capture ses propres valeurs.
1. "Ce gestionnaire de clic affiche l'ancien compteur. Pourquoi ?"
Ce que ça sonde : comprenez-vous que chaque rendu enferme les valeurs de ce rendu-là, et qu'un setter ne modifie pas une variable sur place. Nommez explicitement la closure, puis montrez les deux corrections : la mise à jour fonctionnelle setCount(c => c + 1), et une ref quand vous avez vraiment besoin de la dernière valeur dans un callback à longue durée de vie.
2. "Que contrôle le tableau de dépendances, et quand ne faut-il pas utiliser d'effet du tout ?"
Ce que ça sonde : traitez-vous les effets comme un hook de cycle de vie généraliste (le signe du junior) ou comme une synchronisation avec quelque chose d'extérieur à React. Le tableau décide quand l'effet est relancé ; le nettoyage s'exécute avant la relance suivante et au démontage. Nommez ensuite ce qui ne devrait pas être un effet : les valeurs dérivées (à calculer pendant le rendu), un état qui se réinitialise au changement d'une prop (une key sur l'enfant), et les réponses aux événements (traitez-les dans le gestionnaire).
3. "useMemo, useCallback, React.memo: quelle est la différence ?"
Ce que ça sonde : votre mémoïsation est-elle mesurée ou superstitieuse. useMemo met en cache une valeur, useCallback met en cache une référence de fonction, React.memo évite le re-rendu d'un enfant quand les props sont égales en surface, et les deux premiers ne servent à rien à moins qu'un enfant mémoïsé ou une autre liste de dépendances ne consomme la référence. Ajoutez que la mémoïsation a son propre coût, donc vous profilez d'abord.
4. "Écrivez un hook qui applique un debounce à une valeur." Ce que ça sonde : la composition, le nettoyage et la discipline des dépendances en une dizaine de lignes. Un état pour la valeur débouncée, un effet qui pose un minuteur, un nettoyage qui l'annule, des dépendances sur la valeur et sur le délai. Ce que la plupart des candidats ratent : c'est le nettoyage qui en fait un debounce plutôt qu'une file de mises à jour en attente.
Comment les recruteurs testent-ils le rendu et la réconciliation ?
En demandant ce qui se passe après une mise à jour d'état, pas avant. Une bonne réponse sépare trois phases : React relance le composant pour produire un arbre d'éléments, la réconciliation compare cet arbre au précédent, et la phase de commit applique l'ensemble minimal de mutations du DOM. Les candidats qui mélangent ces phases ne peuvent expliquer ni les clés, ni le moment d'exécution des effets, ni les fonctionnalités concurrentes.
5. "Expliquez-moi ce qui se passe quand j'appelle un setter d'état." Ce que ça sonde : la profondeur de votre modèle mental. La mise à jour est mise en file et groupée avec les autres du même tick, React planifie un rendu, le composant et ses enfants sont relancés, le nouvel arbre est réconcilié avec l'ancien, les effets précédents sont nettoyés, les mutations du DOM sont commitées, puis les effets de layout s'exécutent de façon synchrone et les effets passifs après la peinture. Ajoutez que le Strict Mode double les invocations en développement pour exposer les effets qui ne sont pas proprement réversibles.
6. "Pourquoi les clés comptent-elles, et qu'est-ce qui cloche avec les index de tableau ?" Ce que ça sonde : avez-vous vraiment débogué une liste. Les clés disent à la réconciliation quel élément correspond à quel item d'un rendu à l'autre. Avec des clés d'index, une suppression ou un réordonnancement fait apparier les mauvais items par React, donc l'état des composants et l'état du DOM (un champ qui a le focus, une valeur à moitié saisie) se rattachent à la mauvaise ligne. Ajoutez le revers : changer une clé délibérément est une façon légitime de réinitialiser un sous-arbre.
7. "À quoi servent useTransition et useDeferredValue , au juste ?"
Ce que ça sonde : la conscience qu'un rendu peut être interrompu. Les deux gardent réactive une mise à jour urgente (la frappe) pendant qu'une mise à jour lourde se rend à priorité plus basse : useTransition marque la mise à jour d'état comme non urgente et vous donne un indicateur d'attente, useDeferredValue laisse une valeur prendre du retard. Dites franchement qu'aucun des deux ne rend un rendu lent plus rapide, ils changent seulement ce que l'utilisateur attend.
Quelles questions sur la gestion de l'état faut-il attendre ?
Deux, à coup sûr : où doit vivre un morceau d'état, et comment vous traitez les données serveur différemment des données client. La réponse attendue part de l'état local, traite le contexte comme un moyen de distribution pour des valeurs peu changeantes plutôt que comme un store, et place tout ce qui vient d'une API derrière une couche de cache.
8. "Contexte ou bibliothèque d'état, et comment choisissez-vous ?" Ce que ça sonde : savez-vous ce que coûte le contexte. L'état local d'abord, on ne remonte que jusqu'au parent commun le plus proche, le contexte pour des valeurs qui changent rarement et sont lues largement (thème, langue, utilisateur courant), et un store quand les mises à jour sont fréquentes ou lues par des sous-arbres sans lien. La raison compte : tous les consommateurs se re-rendent quand la valeur du contexte change, donc une valeur qui bouge vite dans un contexte est un bug de performance en attente de ticket.
9. "Comment gérez-vous l'état serveur ?" Ce que ça sonde : avez-vous déjà mis en production quoi que ce soit avec de vraies données. Les données serveur sont le cache de quelque chose qui ne vous appartient pas, il leur faut donc de la déduplication, des règles de péremption, une revalidation en arrière-plan et une invalidation après mutation ; bricoler tout ça dans des effets tourne mal, lentement. Nommez le pattern plutôt que la seule bibliothèque : récupérer côté serveur quand le framework le permet, mettre en cache côté client, garder l'état d'interface local à part.
Comment les questions de performance React sont-elles posées en pratique ?
Sous forme de scénario avec un symptôme, pas de définition. On vous dit "taper dans ce champ de filtre saccade" ou "cette page met quatre secondes à devenir interactive", et votre interlocuteur regarde si vous mesurez avant de changer quoi que ce soit. Se jeter directement sur useMemo est un mauvais premier geste ; ouvrir le Profiler et demander ce qui se re-rend, voilà le bon.
10. "Taper dans un champ de recherche qui filtre dix mille lignes saccade. Diagnostiquez." Ce que ça sonde : la méthode. Enregistrez avec le Profiler React et le panneau de performance du navigateur, et établissez si le coût vient de nombreux composants qui se re-rendent ou d'un composant qui rend beaucoup de nœuds. Si c'est le nombre de nœuds, virtualisez ; si c'est l'étendue du re-rendu, colocalisez l'état du champ pour que l'arbre au-dessus ne bouge pas, puis mémoïsez la ligne ; si c'est le filtre lui-même qui coûte cher, mémoïsez-le ou différez-le.
11. "Le bundle est trop gros. Que faites-vous ?"
Ce que ça sonde : avez-vous déjà ouvert un analyseur de bundle. Mesurer d'abord, puis un découpage par route avec lazy et Suspense, des imports dynamiques pour les composants lourds (éditeurs, graphiques, sélecteurs de date), le remplacement d'une dépendance surdimensionnée, et le déplacement du travail vers le serveur quand le framework le permet. Reliez ça à une métrique qui compte pour le métier, en général le LCP ou la latence d'interaction, plutôt qu'à des kilo-octets pour eux-mêmes.
12. "Le compilateur React rend-il la mémoïsation manuelle obsolète ?"
Ce que ça sonde : suivez-vous l'écosystème et savez-vous tenir une position nuancée. La mémoïsation automatique supprime la plupart des useMemo et useCallback de routine, ce qui est une vraie amélioration, mais elle ne corrige pas un état placé trop haut, un contexte trop large, une liste non virtualisée ou un effet coûteux. Dites ce que vous feriez encore à la main et ce que vous supprimeriez avec plaisir.
À quoi ressemblent les questions sur les tests React ?
En général un scénario plus une question de proportion. On veut des tests qui exercent le comportement par la surface que l'utilisateur touche, le réseau simulé à la frontière plutôt qu'en bouchonnant vos propres modules, et une répartition honnête : des tests unitaires pour la logique pure, des tests d'intégration au niveau composant pour le gros de l'interface, et une fine couche de tests de bout en bout sur les parcours qui coûtent de l'argent quand ils cassent.
13. "Comment testez-vous un composant qui charge des données et affiche une liste ?" Ce que ça sonde : vos tests survivent-ils à un refactoring. Rendez le composant, simulez au niveau réseau, interrogez par rôle et nom accessibles, puis vérifiez l'état de chargement, les lignes chargées, l'état vide et l'état d'erreur. Évitez de vérifier des props ou des internes de hooks, et mentionnez l'instabilité : des requêtes attendues plutôt que des délais arbitraires.
Les recruteurs posent-ils des questions sur les React Server Components ?
De plus en plus, oui, surtout pour vérifier que vous comprenez la frontière, pas pour tester des détails de framework. Vous devez pouvoir dire ce qui tourne où, ce qu'un composant serveur ne peut pas faire, et d'où viennent les erreurs classiques d'hydratation et de cache. Être honnête sur une expérience pratique limitée, c'est bien ; faire semblant, non, parce que la relance vous démasquera.
14. "Quelle est la différence entre un composant serveur et un composant client ?"
Ce que ça sonde : la frontière. Les composants serveur tournent sur le serveur, attendent les données directement, n'envoient jamais leur code au navigateur, et ne peuvent utiliser ni état, ni effets, ni gestionnaires d'événements ; les composants client s'hydratent dans le navigateur et peuvent faire les trois. La directive "use client" marque un point d'entrée en territoire client, donc tout ce qui est importé en dessous part aussi côté client, et c'est pour ça qu'une directive posée sans réfléchir en haut d'un arbre anéantit le bénéfice.
15. "Où récupérez-vous les données, et quels sont les pièges de cache ?" Ce que ça sonde : les cicatrices de production. Récupérez côté serveur, au plus près de l'endroit où les données sont rendues, et laissez le framework dédupliquer les requêtes identiques dans un même rendu. Les pièges à nommer : un rendu statique accidentel de quelque chose qui devrait être dynamique, des données périmées après une mutation parce que rien n'a revalidé, et des divergences d'hydratation quand on rend un horodatage pendant la passe serveur.
Quelles erreurs font recaler les candidats React ?
Surtout des ratés de méthode plutôt que des trous de connaissance. On rejette rarement quelqu'un parce qu'il ne connaît pas un hook ; on rejette celui qui a travaillé en silence, deviné une correction et laissé l'état d'erreur non traité. Ces six-là expliquent l'essentiel des retours négatifs sur les parcours React.
- Coder en silence. Dans l'épreuve de construction, le commentaire à voix haute constitue l'essentiel du signal.
- Sortir un effet en premier réflexe. Récupérer, dériver et synchroniser de l'état dans des effets alors qu'il existe plus simple est le signe architectural le plus courant.
- Mémoïser sans mesurer. On demande "qu'est-ce que ça a amélioré" précisément parce que la plupart des candidats ne savent pas répondre.
- Ignorer le chemin malheureux. Les états de chargement, vide et d'erreur sont ce qu'on va titiller. Traitez-les sans qu'on vous le demande.
- S'arrêter à la définition. "
useCallbackmémoïse une fonction" est l'endroit où commence la moitié intéressante de la réponse. - En rajouter sur les composants serveur. Trébucher sur la frontière client coûte plus cher que d'admettre que vous n'avez livré qu'un seul projet.
Comment se préparer à un entretien React ?
Construisez deux choses plutôt que d'en lire dix. Un tableau filtrable et triable avec pagination côté serveur vous fait traverser le placement de l'état, le cache, les clés et la virtualisation. Un formulaire en plusieurs étapes avec validation et vraie soumission vous fait traverser les champs non contrôlés, la gestion des erreurs et le pilotage du focus. À eux deux, ils produisent des réponses honnêtes à la plupart des questions ci-dessus, et les réponses honnêtes survivent aux relances.
Ensuite, profilez quelque chose de réel. Ouvrez le Profiler sur une application sur laquelle vous travaillez, trouvez le composant qui se re-rend le plus, et corrigez-le proprement, parce que ça vous donne une histoire avec des chiffres dedans. Pour les fondamentaux qui soutiennent le framework, le guide des questions d'entretien pour développeur frontend couvre le JavaScript et le navigateur sur lesquels le test technique filtre encore, et chez un grand employeur, leur banque de questions par entreprise mérite un survol pour repérer les usages maison.
Ensuite, répétez sur la bonne liste : passez l'annonce dans le Question Predictor gratuit, pour que les vingt questions que vous travaillez à voix haute soient celles que cette équipe a des chances de poser, plutôt qu'un jeu générique.
Là où un copilote en direct trouve sa place
La préparation couvre l'essentiel, et puis une question arrive de travers à la quarantième minute et votre esprit se vide. GhostPilot AI est un copilote en temps réel pour ce moment-là : il tourne dans le panneau latéral d'une extension Chrome ou en application de bureau Windows, écoute l'appel, attrape la question, et a une réponse structurée prête environ deux secondes plus tard, ce qui suffit en général à transformer un blanc en une première phrase nette. L'offre gratuite inclut 10 minutes de session en direct par semaine, sans carte bancaire. C'est un filet en cas de trou de mémoire, pas un substitut à la connaissance de votre propre travail.
FAQ
Combien de temps faut-il se préparer à un entretien de développeur React ? Deux à trois semaines de pratique ciblée si vous écrivez du React tous les jours. Si vous entretenez une base de code historique à composants de classe, comptez quatre à six semaines, surtout pour vous mettre à l'aise avec les patterns de l'ère des hooks, l'état serveur et le vocabulaire de rendu actuel.
Les entretiens React incluent-ils encore des questions d'algorithmes ? Certains oui, en particulier dans les grandes entreprises au parcours standardisé. Chez les éditeurs de produits, la tendance va nettement vers la construction et le débogage de vrais composants. Gardez les structures de données de base au chaud, mais consacrez le gros de votre temps au travail d'interface concret.
Que faut-il savoir sur les React Server Components ? De quoi expliquer la frontière avec assurance et nommer les erreurs classiques. Une expérience pratique approfondie est un bonus pour la plupart des postes plutôt qu'une exigence, sauf si l'annonce tourne autour d'un framework bâti sur eux.
Faut-il dire que j'utilise des outils d'IA pour écrire du React ? Oui, si on vous le demande, et dites comment vous relisez la sortie. Vos interlocuteurs le supposent déjà. Ce qu'ils vérifient, c'est si vous savez défendre et déboguer le code, et c'est exactement pour ça que les relances en plongée sont devenues plus dures.