国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

  • <i id="0xavp"></i>
    <rt id="0xavp"><tr id="0xavp"></tr></rt>
  • Maison interface Web js tutoriel Validation du formulaire avec YUP

    Validation du formulaire avec YUP

    Dec 29, 2024 am 03:51 AM

    Form validation with YUP

    Simplifiez la validation de votre formulaire dans React avec Yup

    Lors de la création d'applications Web, la validation des formulaires est essentielle pour garantir l'intégrité des données. Si vous recherchez un moyen simple mais puissant de valider des formulaires dans React, Yup est votre meilleur ami?! Ce blog vous guidera à travers les étapes de configuration de Yup et de création d'un formulaire soigné avec validation.


    Ce que vous apprendrez

    à la fin de ce blog, vous saurez comment?:

    1. Configurez Yup pour la validation dans React.
    2. Créez un formulaire avec des règles de validation.
    3. Stylisez votre formulaire en utilisant du CSS externe.

    Conditions préalables

    Avant de plonger, assurez-vous d'avoir?:

    • Connaissance de base de React.
    • Node.js installé sur votre ordinateur.

    étape 1?: Configuration de Yup

    Tout d’abord, installez Yup dans votre projet React. Exécutez la commande suivante dans votre terminal?:

    npm install yup
    

    étape 2?: Création du formulaire

    Voici un formulaire simple avec des champs pour un nom et une adresse e-mail. Nous utiliserons useState de React pour gérer les valeurs d'entrée et les erreurs.

    import React, { useState } from 'react';
    
    function MyForm() {
      const [formData, setFormData] = useState({ name: '', email: '' });
      const [errors, setErrors] = useState({});
    
      const handleChange = (e) => {
        setFormData({ ...formData, [e.target.name]: e.target.value });
      };
    
      const handleSubmit = (e) => {
        e.preventDefault();
        // Validation will go here
      };
    
      return (
        <form onSubmit={handleSubmit}>
          <div>
            <label>Name:</label>
            <input
              type="text"
              name="name"
              value={formData.name}
              onChange={handleChange}
            />
          </div>
          <div>
            <label>Email:</label>
            <input
              type="email"
              name="email"
              value={formData.email}
              onChange={handleChange}
            />
          </div>
          <button type="submit">Submit</button>
        </form>
      );
    }
    
    export default MyForm;
    

    étape 3?:

    Il est maintenant temps d'intégrer Yup. Je vais créer un schéma de validation, puis vérifier les données du formulaire une fois soumises.

    import * as Yup from "yup"
    
    const validationSchema = Yup.object({
    name: Yup.string().required('Name is required!')
    email: Yup.string().email('Your email is invalid').required('email is required')
    })
    

    J'utiliserai ce schéma dans la fonction handleSubmit pour valider le formulaire

      const handleSubmit = (e) => {
        e.preventDefault();
        try {
        await validationSchema.validate(formData, { abortEarly: false });
        setErrors({});
        alert('Form is valid!');
      } catch (err) {
        const newErrors = {};
        err.inner.forEach((error) => {
          newErrors[error.path] = error.message;
        });
        setErrors(newErrors);
      }
      };
    

    étape 4?: Styliser le formulaire

    Pour donner une belle apparence au formulaire, créez un fichier CSS externe (MyForm.css) et ajoutez ces styles?:

    .form-container {
      max-width: 400px;
      margin: 50px auto;
      padding: 20px;
      background: #f9f9f9;
      border-radius: 8px;
      box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    }
    .label {
      font-weight: bold;
    }
    .input {
      width: 100%;
      padding: 10px;
      margin: 5px 0;
      border-radius: 4px;
    }
    .error {
      color: red;
      font-size: 12px;
    }
    .button {
      background: #4caf50;
      color: white;
      padding: 10px;
      border: none;
      border-radius: 4px;
      cursor: pointer;
    }
    .button:hover {
      background: #45a049;
    }
    

    Importez le fichier CSS dans votre composant?:

    import './MyForm.css';
    

    Code complet?:

    import React, { useState } from 'react';
    import * as Yup from 'yup';
    import './MyForm.css';
    
    function MyForm() {
      const [formData, setFormData] = useState({ name: '', email: '' });
      const [errors, setErrors] = useState({});
    
      const validationSchema = Yup.object({
        name: Yup.string().required('Name is required!'),
        email: Yup.string().email('Invalid email!').required('Email is required!'),
      });
    
      const handleChange = (e) => {
        setFormData({ ...formData, [e.target.name]: e.target.value });
      };
    
      const handleSubmit = async (e) => {
        e.preventDefault();
        try {
          await validationSchema.validate(formData, { abortEarly: false });
          setErrors({});
          alert('Form is valid!');
        } catch (err) {
          const newErrors = {};
          err.inner.forEach((error) => {
            newErrors[error.path] = error.message;
          });
          setErrors(newErrors);
        }
      };
    
      return (
        <div className="form-container">
          <h1>Simple Form</h1>
          <form onSubmit={handleSubmit}>
            <div>
              <label className="label">Name:</label>
              <input
                type="text"
                name="name"
                value={formData.name}
                onChange={handleChange}
                className="input"
              />
              {errors.name && <div className="error">{errors.name}</div>}
            </div>
            <div>
              <label className="label">Email:</label>
              <input
                type="email"
                name="email"
                value={formData.email}
                onChange={handleChange}
                className="input"
              />
              {errors.email && <div className="error">{errors.email}</div>}
            </div>
            <button type="submit" className="button">Submit</button>
          </form>
        </div>
      );
    }
    
    export default MyForm;
    

    Conclusion

    Yup est un outil puissant de validation de formulaire, même sans Formik. Avec seulement quelques lignes de code, vous pouvez ajouter une validation robuste à vos applications React.

    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

    Outils d'IA chauds

    Undress AI Tool

    Undress AI Tool

    Images de déshabillage gratuites

    Undresser.AI Undress

    Undresser.AI Undress

    Application basée sur l'IA pour créer des photos de nu réalistes

    AI Clothes Remover

    AI Clothes Remover

    Outil d'IA en ligne pour supprimer les vêtements des photos.

    Clothoff.io

    Clothoff.io

    Dissolvant de vêtements AI

    Video Face Swap

    Video Face Swap

    échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

    Outils chauds

    Bloc-notes++7.3.1

    Bloc-notes++7.3.1

    éditeur de code facile à utiliser et gratuit

    SublimeText3 version chinoise

    SublimeText3 version chinoise

    Version chinoise, très simple à utiliser

    Envoyer Studio 13.0.1

    Envoyer Studio 13.0.1

    Puissant environnement de développement intégré PHP

    Dreamweaver CS6

    Dreamweaver CS6

    Outils de développement Web visuel

    SublimeText3 version Mac

    SublimeText3 version Mac

    Logiciel d'édition de code au niveau de Dieu (SublimeText3)

    Java vs Javascript: effacer la confusion Java vs Javascript: effacer la confusion Jun 20, 2025 am 12:27 AM

    Java et JavaScript sont différents langages de programmation, chacun adapté à différents scénarios d'application. Java est utilisé pour le développement des grandes entreprises et des applications mobiles, tandis que JavaScript est principalement utilisé pour le développement de pages Web.

    Ma?triser les commentaires JavaScript: un guide complet Ma?triser les commentaires JavaScript: un guide complet Jun 14, 2025 am 12:11 AM

    CommentairesaRecrucialInjavaScriptFormantAntaining ClarityandfosterringCollaboration.1) TheyHelpindebuggging, INBORDING et comprise compenser laveevolution.2) Utilisation de linecomments à la hauteur

    Commentaires JavaScript: Explication courte Commentaires JavaScript: Explication courte Jun 19, 2025 am 12:40 AM

    JavaScriptCommentsaSententialFormantaining, Reading et GuidingCodeEexecution.1) unique-linecomesaUSEUSEFORQUICKEXPLANATIONS.2) Multi-linecommentSExPlainComplexLogicorProvideTailedDocumentation.3) Inlinecomementsclarifypecifications

    Types de données JavaScript: une plongée profonde Types de données JavaScript: une plongée profonde Jun 13, 2025 am 12:10 AM

    Javascripthasseveralprivevedatatypes: numéro, cha?ne, booléen, indéfini, nul, symbole, etbigint, et nonne-primitiveTypes lisebjectandarray.Cendurstanding theseiscrucialforwritingEfficient, bogue-freecode: 1)

    Javascript contre Java: une comparaison complète pour les développeurs Javascript contre Java: une comparaison complète pour les développeurs Jun 20, 2025 am 12:21 AM

    Javascriptispreferredforwebdevelopment, tandis que javaisbetterforlarge-scalebackenSystemsandandroidApps.1)

    Comment travailler avec les dates et les heures de JS? Comment travailler avec les dates et les heures de JS? Jul 01, 2025 am 01:27 AM

    Les points suivants doivent être notés lors du traitement des dates et du temps dans JavaScript: 1. Il existe de nombreuses fa?ons de créer des objets de date. Il est recommandé d'utiliser les cha?nes de format ISO pour assurer la compatibilité; 2. Get and définir des informations de temps peuvent être obtenues et définir des méthodes, et notez que le mois commence à partir de 0; 3. Les dates de mise en forme manuelle nécessitent des cha?nes et les bibliothèques tierces peuvent également être utilisées; 4. Il est recommandé d'utiliser des bibliothèques qui prennent en charge les fuseaux horaires, comme Luxon. La ma?trise de ces points clés peut éviter efficacement les erreurs courantes.

    JavaScript: Exploration des types de données pour un codage efficace JavaScript: Exploration des types de données pour un codage efficace Jun 20, 2025 am 12:46 AM

    JavascripthSsevenfundamentalDatatypes: nombre, cha?ne, booléen, indéfini, nul, objet, andymbol.1) nombres usUseadouble-précisformat, utile

    Pourquoi devriez-vous placer des balises  au bas du ? Pourquoi devriez-vous placer des balises au bas du ? Jul 02, 2025 am 01:22 AM

    PlacertagsatthebottomofablogPostorwebPageSerSpracticalPurpossForseo, userexperience, anddesign.1.ithelpswithseobyallowingsechingenginestoaccesskeyword-elevanttagswithoutcluteringtheaincontent..itimproveserexperceenceegmentyepingthefocusonThearrlUl

    See all articles