Maison > interface Web > Questions et réponses frontales > Comment créez-vous des composants contrôlés dans React?

Comment créez-vous des composants contrôlés dans React?

Robert Michael Kim
Libérer: 2025-03-19 16:14:31
original
903 Les gens l'ont consulté

Comment créez-vous des composants contrôlés dans React?

La création de composants contrôlés dans React implique la gestion de l'état des éléments de forme (tels que les champs d'entrée, les lifteds et les zones de texte) via l'état du composant, plutôt que de laisser le DOM le gérer. Voici un guide étape par étape sur la façon de créer des composants contrôlés:

  1. Configuration de l'état: Tout d'abord, vous devez configurer l'état de votre composant React pour contenir les valeurs des éléments de forme. Cela peut être fait en utilisant le crochet useState pour les composants fonctionnels ou l'objet this.state pour les composants de classe.

     <code class="javascript">const [inputValue, setInputValue] = useState('');</code>
    Copier après la connexion
  2. Bind State à la valeur: Ensuite, vous liez l'état à l'attribut value de l'élément de forme. Pour un champ de saisie, cela pourrait ressembler:

     <code class="jsx"><input type="text" value="{inputValue}" onchange="{handleChange}"></code>
    Copier après la connexion
  3. Gérer les modifications: vous devez créer une fonction pour gérer les modifications de l'élément de forme. Cette fonction met à jour l'état chaque fois que l'utilisateur interagit avec l'élément de formulaire.

     <code class="javascript">const handleChange = (event) => { setInputValue(event.target.value); };</code>
    Copier après la connexion

En suivant ces étapes, vous créez efficacement un composant contrôlé où React est en charge de l'état du formulaire, et toutes les mises à jour des éléments du formulaire doivent passer par la gestion de l'État de React.

Quels sont les avantages de l'utilisation de composants contrôlés dans React?

Les composants contrôlés de React offrent plusieurs avantages qui améliorent le développement et l'expérience utilisateur:

  1. Prédiction et contrôle: Étant donné que l'état du composant gère les éléments de forme, vous avez un contrôle total sur ce qui arrive aux données et comment il est affiché. Cela rend le comportement de votre application prévisible et plus facile à déboguer.
  2. Source unique de vérité: avec des composants contrôlés, l'état des éléments de forme est stocké en un seul endroit (l'état du composant), qui agit comme une seule source de vérité. Cela simplifie la gestion des données et réduit les chances d'incohérence des données.
  3. Réutilisabilité et évolutivité: les composants contrôlés facilitent la réutilisation de la logique du formulaire dans différentes parties de votre application. Vous pouvez rédiger la validation, la transformation et la logique de soumission une fois et l'appliquer à plusieurs formulaires.
  4. Validation de formulaire plus facile: la gestion de l'état des éléments de formulaire rend simple à mettre en œuvre la validation en temps réel et à fournir des commentaires immédiats aux utilisateurs, en améliorant l'expérience utilisateur.
  5. Test plus facile: Étant donné que l'État est géré par programme, il est plus facile d'écrire des tests unitaires pour les formulaires pour s'assurer qu'ils se comportent comme prévu dans divers scénarios.

Comment pouvez-vous gérer la validation du formulaire avec des composants contrôlés dans React?

La gestion de la validation de la forme avec des composants contrôlés dans REACT implique l'utilisation de l'état pour suivre la validité des éléments de forme. Voici comment vous pouvez le faire:

  1. Logique de validation: Écrivez des fonctions qui vérifient la validité des entrées de formulaire. Ceux-ci peuvent être des vérifications simples pour les champs requis, ou des validations plus complexes comme le format de messagerie, la force du mot de passe, etc.

     <code class="javascript">const validateEmail = (email) => { const re = /^[a-zA-Z0-9._-] @[a-zA-Z0-9.-] \.[a-zA-Z]{2,4}$/; return re.test(String(email).toLowerCase()); };</code>
    Copier après la connexion
  2. État pour la validation: ajoutez des variables d'état pour suivre si un champ est valide et éventuellement maintenir des messages d'erreur.

     <code class="javascript">const [email, setEmail] = useState(''); const [emailError, setEmailError] = useState('');</code>
    Copier après la connexion
  3. Mettre à jour la validation de la modification: dans votre fonction handleChange , appelez vos fonctions de validation et mettez à jour l'état de validation en conséquence.

     <code class="javascript">const handleEmailChange = (event) => { const newEmail = event.target.value; setEmail(newEmail); if (!validateEmail(newEmail)) { setEmailError('Please enter a valid email address'); } else { setEmailError(''); } };</code>
    Copier après la connexion
  4. Afficher les commentaires de validation: utilisez l'état de validation pour afficher des messages d'erreur ou des indicateurs de réussite à l'utilisateur en temps réel.

     <code class="jsx"><input type="email" value="{email}" onchange="{handleEmailChange}"> {emailError && <div style="{{color:">{emailError}</div>}</code>
    Copier après la connexion
  5. Soumission de formulaire: lorsque le formulaire est soumis, vous pouvez vérifier l'état de validation pour décider de procéder à la soumission ou à afficher les erreurs.

     <code class="javascript">const handleSubmit = (event) => { event.preventDefault(); if (!emailError) { // Proceed with form submission } else { // Handle form submission errors } };</code>
    Copier après la connexion

Cette approche vous permet de créer une expérience utilisateur transparente où la validation se produit en temps réel, aidant les utilisateurs à corriger les erreurs au fur et à mesure.

Quelle est la différence entre les composants contrôlés et incontrôlés dans React?

La principale différence entre les composants contrôlés et incontrôlés dans React réside dans la façon dont ils gèrent et gèrent les données de formulaire:

  1. Gestion de l'État:

    • Composants contrôlés: ces composants ont leur état et leur comportement gérés par le composant parent. Le composant parent utilise des accessoires pour passer la valeur actuelle et les gestionnaires d'événements au composant enfant, contrôlant efficacement la valeur de l'entrée.
    • Composants incontrôlés: ces composants gèrent leur propre état en interne. Ils utilisent des références pour accéder à la valeur actuelle des éléments de formulaire directement à partir du DOM.
  2. Flux de données:

    • Composants contrôlés: les données circulent de l'état du composant vers le DOM. Toute modification de la valeur de l'entrée doit passer par un gestionnaire d'événements qui met à jour l'état.
    • Composants incontrôlés: les données sont lues directement à partir du DOM à l'aide des refs en cas de besoin, en contournant l'état du composant.
  3. Prévisibilité et contrôle:

    • Composants contrôlés: offrez plus de contrôle et de prévisibilité car l'État est géré par programme. Ceci est idéal pour des formes complexes où vous devez valider, transformer ou gérer les données en temps réel.
    • Composants incontrôlés: sont plus simples à configurer et peuvent être préférés pour des formulaires simples où vous devez accéder aux données qu'une seule fois, par exemple sur la soumission du formulaire. Cependant, ils offrent moins de contrôle sur le comportement du formulaire.
  4. Exemple d'utilisation:

    • Composants contrôlés: idéal pour les formulaires qui nécessitent une validation en temps réel, une manipulation de données complexes ou lorsque vous devez réutiliser la logique du formulaire sur plusieurs composants.
    • Composants incontrôlés: utiles pour des formulaires rapides et simples où vous n'avez pas besoin de gérer activement l'état de chaque champ, comme une entrée de recherche simple.

En résumé, les composants contrôlés offrent plus de contrôle et sont adaptés aux interactions de forme complexe, tandis que les composants incontrôlés sont plus simples et plus adaptés aux cas d'utilisation de base.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal