React / Next.js

Formulaires & Composants contrôlés

Controlled components, uncontrolled components, form validation, React Hook Form, submit handling

20 questions d'entretien·
Confirmé
1

Qu'est-ce qu'un composant contrôlé (controlled component) en React ?

Réponse

Un composant contrôlé est un élément de formulaire dont la valeur est gérée par l'état React via la prop value et un gestionnaire onChange. Cela signifie que React devient la source unique de vérité pour cette donnée. Contrairement aux composants non contrôlés où le DOM maintient sa propre valeur, les composants contrôlés permettent un contrôle total sur les données du formulaire et facilitent la validation en temps réel.

2

Comment créer un input contrôlé en React ?

Réponse

Un input contrôlé nécessite deux éléments essentiels : la prop value liée à l'état React et un gestionnaire onChange pour mettre à jour cet état. Sans onChange, l'input serait en lecture seule car React empêcherait toute modification. Cette approche garantit que l'état React reste synchronisé avec la valeur affichée dans l'input, permettant ainsi une validation immédiate ou une transformation des données saisies.

3

Quelle est la différence entre un composant contrôlé et un composant non contrôlé ?

Réponse

La différence fondamentale réside dans la source de vérité des données. Un composant contrôlé stocke sa valeur dans l'état React (source unique de vérité), tandis qu'un composant non contrôlé laisse le DOM gérer sa propre valeur, accessible via une ref. Les composants contrôlés offrent plus de contrôle et facilitent la validation en temps réel, mais les composants non contrôlés peuvent être plus simples pour des formulaires basiques sans validation complexe.

4

Comment gérer plusieurs inputs contrôlés dans un même formulaire ?

5

Comment créer une checkbox contrôlée en React ?

+17 questions d'entretien

Maîtrise React / Next.js pour ton prochain entretien

Accède à toutes les questions, flashcards, tests techniques, exercices de code review et simulateurs d'entretien.

Commencer gratuitement