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:
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>
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>
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>
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.
Les composants contrôlés de React offrent plusieurs avantages qui améliorent le développement et l'expérience utilisateur:
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:
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>
É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>
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>
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>
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>
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.
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:
Gestion de l'État:
Flux de données:
Prévisibilité et contrôle:
Exemple d'utilisation:
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!