Formulaires React Hook : maîtriser la gestion des formulaires dans React | Faisal Memon | Skillshare

Vitesse de lecture


1.0x


  • 0.5x
  • 0.75x
  • 1 x (normale)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Formulaires React Hook : maîtriser la gestion des formulaires dans React

teacher avatar Faisal Memon, Product | Engineer | Entrepreneur

Regardez ce cours et des milliers d'autres

Bénéficiez d'un accès illimité à tous les cours
Suivez des cours enseignés par des leaders de l'industrie et des professionnels
Explorez divers sujets comme l'illustration, le graphisme, la photographie et bien d'autres

Regardez ce cours et des milliers d'autres

Bénéficiez d'un accès illimité à tous les cours
Suivez des cours enseignés par des leaders de l'industrie et des professionnels
Explorez divers sujets comme l'illustration, le graphisme, la photographie et bien d'autres

Leçons de ce cours

    • 1.

      Introduction du cours

      1:45

    • 2.

      Premiers : simplifier les formulaires dans React

      15:27

    • 3.

      Dépannage : pièges courants dans les formulaires de base React

      10:39

    • 4.

      Libérer la puissance : une plongée approfondie dans le format React Hook

      14:09

    • 5.

      Informations en temps réel : surveiller les valeurs des formulaires avec React Hook Form

      8:32

    • 6.

      Expérience utilisateur fluide : ajouter des validations sous forme de React Hook

      16:25

    • 7.

      La vitesse est importante : comparer les performances des formulaires de base et du formulaire React Hook

      4:30

    • 8.

      Réinitialiser et rafraîchir : maîtriser la gestion des états de formulaire

      3:30

    • 9.

      Retours personnalisés : créer des validations personnalisées dans React Forms

      9:03

    • 10.

      Au-delà des bases : mettre en œuvre des validations personnalisées sophistiquées

      15:28

    • 11.

      Conclusion du cours

      2:06

  • --
  • Niveau débutant
  • Niveau intermédiaire
  • Niveau avancé
  • Tous niveaux

Généré par la communauté

Le niveau est déterminé par l'opinion majoritaire des apprenants qui ont évalué ce cours. La recommandation de l'enseignant est affichée jusqu'à ce qu'au moins 5 réponses d'apprenants soient collectées.

97

apprenants

--

projet

À propos de ce cours

Maîtriser les formulaires React Hook : simplifier la gestion des formulaires dans React !

Les formulaires sont un élément essentiel du développement web, et leur gestion efficace est cruciale. Dans ce cours, « Maîtriser les formulaires React Hook », vous apprendrez à gérer facilement les formulaires dans React en utilisant React Hook Form, une bibliothèque puissante et flexible qui simplifie la gestion des formulaires.

Ce que vous allez apprendre :

  • Les bases des formulaires dans React et les problèmes courants rencontrés avec les formulaires de base.
  • Comment configurer et utiliser React Hook Form pour améliorer la gestion des formulaires.
  • Implémenter et observer les valeurs de formulaire de manière dynamique.
  • Ajouter et gérer des validations personnalisées de base et avancées.
  • Comparer les performances entre les formulaires de base et React Hook Form.
  • Les bonnes pratiques pour réinitialiser les formulaires et maintenir des performances optimales.

À la fin de ce cours, vous maîtriserez les formulaires dans React et serez capable de créer des expériences de formulaire robustes et conviviales pour vos applications.

Rencontrez votre enseignant·e

Teacher Profile Image

Faisal Memon

Product | Engineer | Entrepreneur

Enseignant·e

Hey - this is Faisal and thanks for being here.

I have over 12 years of experience working as a Product Manager Founder/CEO Engineer in Mobile and App development industry. I have been building global products being used by millions of users across the globe since the beginning of my career.

Currently I am heading Product at one of the fast-paced startup in India and enjoying every moment of it. Prior to his, I built out couple of startups which had over half a million users across the globe, raised funding from Google other investors and was part of Google Launchpad Accelerator. I have experience of building products from scratch and scaling to global users.

I am here on Skillshare to share my knowledge with seekers and help them grow personally and professional... Voir le profil complet

Level: All Levels

Notes attribuées au cours

Les attentes sont-elles satisfaites ?
    Dépassées !
  • 0%
  • Oui
  • 0%
  • En partie
  • 0%
  • Pas vraiment
  • 0%

Pourquoi s'inscrire à Skillshare ?

Suivez des cours Skillshare Original primés

Chaque cours comprend de courtes leçons et des travaux pratiques

Votre abonnement soutient les enseignants Skillshare

Apprenez, où que vous soyez

Suivez des cours où que vous soyez avec l'application Skillshare. Suivez-les en streaming ou téléchargez-les pour les regarder dans l'avion, dans le métro ou tout autre endroit où vous aimez apprendre.

Transcription

1. Introduction du cours: Bienvenue dans ce cours sur la maîtrise des formulaires React Hook. Je suis Fazal, et je suis ravi de vous guider dans ce voyage dans lequel nous apprendrons comment gérer efficacement les formulaires dans React Maintenant, la gestion des formulaires peut être une tâche complexe et fastidieuse, et c'est pourquoi je suis ravi vous présenter React Hook Form, un outil qui révolutionne la gestion des formulaires dans Tout au long de ce cours, nous explorerons tout, des formulaires de base aux techniques de validation avancées, en passant par la rationalisation et l'efficacité de la gestion de vos formulaires. Couvrez de nombreux sujets, comme l'introduction aux formulaires dans React. Nous parlerons des formulaires React Hook, de base, dans lesquels nous aborderons les détails de la gestion des formulaires avec React Hook Form et fonctionnement de cette bibliothèque appelée React Hook Nous comprendrons également les techniques de validation et la manière dont vous pouvez mettre en œuvre des validations robustes Nous découvrirons les améliorations des performances, et je peux vous assurer qu' à la fin de ce cours, vous aurez tous les outils et connaissances nécessaires pour créer des formulaires puissants et conviviaux dans React. qui s'adresse ce cours ? Ce cours est donc parfait pour tous ceux qui cherchent à améliorer leurs capacités de réaction Maintenant, que vous soyez débutant ou que vous souhaitiez approfondir vos connaissances ou la gestion de formulaires dans React, tout le monde peut bénéficier de ce cours en particulier. Ce cours est entièrement pratique, et peu importe ce que nous allons apprendre, nous l'apprendrons en examinant des exemples réels. Je suis donc très heureuse de vous emmener dans ce voyage passionnant. J'espère que vous êtes aussi enthousiaste, et je vous verrai de l'autre côté. 2. Premiers : simplifier les formulaires dans React: Il est maintenant temps de parler des formulaires et de la manière dont vous pouvez gérer les données des formulaires dans React. Donc, ce que nous allons faire, c'est créer un formulaire de base et nous allons créer un formulaire de base et découvrir les détails de la gestion des formulaires ou de la gestion des données avec Forms J'ai donc ici un projet React Wheat très simple, vous pouvez le voir, et c'est un code très simple. Au début, j'ai fait un petit nettoyage dans l'application JSX, comme vous pouvez le voir, comme vous pouvez Et app.j6 est rendu en point moyen Jx ici avec le mode strict Fermez ça. Et voici un CSS, qui est un CSS très basique. Ce n'est pas grand-chose. Je règle la marge à zéro pixel pour tous, puis pour Dev, j'ajoute flex, l'affichage de flex justifiant que tout soit centré. C'est bon. Je vais donc simplement fermer ceci et nous allons nous concentrer sur app.j6. C'est bon. J'ai le serveur en cours d'exécution et vous pouvez voir le résultat sur le côté droit. D'accord ? Maintenant, ce que je vais faire, c'est ajouter un champ de saisie très simple, et nous allons poursuivre sur cette lancée. C'est bon. Donc, ce que je ferais ici est ici. OK ? Je dirais formulaire, ou parce que le champ de saisie doit être à l'intérieur de la balise Fm, d'accord ? C'est donc notre tag FM, d'accord. Et je vais dire que lors de la soumission ici, lors de la soumission, nous devons le soumettre quelque part. OK ? Nous avons donc besoin d'une fonction qui gérera la soumission. Mais pour l'instant, je vais garder ce champ vide et je le remplirai plus tard. Je vais ajouter une étiquette ici, d'accord. Et l'étiquette portera le nom. OK. Laisse-moi voir si ça marche. Je vais avoir un message d'erreur. Permettez-moi donc d'ajouter cette fonction également parce que nous n' allons pas voir le résultat, donc je dirais de gérer la soumission ici, soumettre quelque chose comme ça. Et ici, dans le composant, je vais dire const, handle submit, quelque chose comme ça, et j'ai une fonction de flèche mt ici, ajoutée C'est bon. Rien ne se passe donc pour le moment, car nous devons définir la logique du fonctionnement de la soumission. C'est bon. Maintenant, cette étiquette existe, d'accord ? Nous avons la balise de fermeture du label, et je vais ajouter une entrée ici. OK. Et je vais dire que l'entrée est de type texte. OK ? Donc, le type est du texte ici, et je vais dire que le nom est le nom ici. OK. Cela a donc guillemets simples, il vaut mieux avoir de la cohérence ici. C'est un nom. J' aurai de la valeur ici. Maintenant, qu'est-ce que la valeur ? Valeur, nous devons attribuer. OK, donc je vais juste avoir zéro ici, quelque chose comme ça. OK. Mais ce n'est pas le vrai nom. Nous devons le lier à quelque chose ou essayer si nous créons. OK ? Je dirais donc qu'en ce qui concerne le changement, nous devons gérer le changement ici. OK ? Alors, en cas de changement, que se passera-t-il ? Je vais le mentionner également. OK ? Maintenant, je vais venir ici et je vais vous dire de gérer le changement. Quelque chose comme ça. OK. Voici donc, vous savez, ce champ qui a été ajouté, d'accord ? Maintenant, ce que je fais, c'est que j'utilise cette valeur, elle lie la valeur initiale ici. On change déclenchera l'événement onchange s'il y a un changement dans ce champ en particulier, d'accord ? Et en ce moment, je crée un lien comme si on change, appelez cette fonction particulière handle change. Et c'est une fonction qui va gérer le changement pour nous, d'accord ? Nous pouvons avoir un peu de logique ici, d'accord ? Donc, en cas de changement descripteur, je peux accepter l'objet de l'événement ici. OK. Et je peux dire « console point log » par ici, d'accord ? Et je peux dire la valeur du point cible E. OK. Et ici, si j'entre, d' accord, je pense que ça devrait aller pour le moment. Laisse-moi enregistrer ça. Laissez-moi me rendre pour inspecter. Nous devrions voir le journal au fur et mesure que nous sommes en train de taper. Je vais donc faire une mise à jour complète pour que toutes les erreurs disparaissent. OK. Et je vais juste dire, pour que vous puissiez voir, que je tape des choses. Oups. Donc, en gros, cela a une valeur de zéro. C'est donc un problème ici. Si je fais un commentaire, permettez-moi de le commenter. OK. Et maintenant, si je tape, d'accord, je peux dire que j'adore. Vous pouvez voir réagir. Vous pouvez voir comment cela se déclenche. Il imprime donc tout à chaque fois que je tape sur chaque touche ici. OK ? C'est donc ce qui se passe ici. Maintenant, la valeur ici que j'ai commentée, d'accord, c'est un attribut de saisie qui contrôle le texte affiché dans le champ de saisie. OK ? Donc, si je le lie à zéro, si je dis zéro ici, vous verrez zéro ici, comme nous le voyions. Et normalement, le champ de valeur est généralement utilisé pour lier un champ particulier à une variable d'état. OK ? Nous n'avons pas encore créé de variable d'état, que nous allons créer dans un instant, mais c'est pourquoi la valeur est utilisée et je l'ai commentée jusqu'à ce que nous ayons l'état de la variable en cours de création, d'accord ? En cas de changement ici, il s'agit d'un gestionnaire d'événements qui suit le changement dans le champ de saisie Ainsi, chaque fois que l'utilisateur saisit ou modifie une entrée, la fonction de modification est déclenchée, vous permettant de mettre à jour l'état avec la nouvelle valeur d'entrée OK ? Donc, pour le moment, nous ne jouons pas encore avec State, mais ce que nous faisons, c'est sur le changement, nous assistons à un changement de handle, et cette fonction est déclenchée chaque fois qu'il y a un changement dans le champ de saisie. Et que faisons-nous pour gérer le changement ? Nous acceptons l'objet de l'événement, et nous disons une valeur de point cible, ce qui nous donne la valeur qui se trouve dans le champ de texte, d'accord ? Ainsi, E représente essentiellement l'objet d'événement qui est transmis à la fonction lorsque l'événement se produit, et l'événement peut être quelque chose comme cliquer sur un bouton ou taper dans un champ. Voici quelques éléments de base sur le fonctionnement de ce code jusqu'à présent. OK ? Maintenant, ce que nous allons faire, c'est lier tout à un État. Je vais donc dire const, je vais dire données de formulaire. C'est donc une statistique que je crée et les données du formulaire vont essentiellement m'aider à stocker les données pour l'ensemble du formulaire. Il peut donc y avoir plusieurs champs dans le formulaire. À l'heure actuelle, nous n' avons qu'un seul champ. Nous pourrions avoir plusieurs champs, et nous pourrions avoir utilisé ou utiliser les données du formulaire pour tout stocker. OK ? Je vais donc parler des données du formulaire ici. Et ce que je vais faire maintenant c'est utiliser use state ici, use state, quelque chose comme ça, et je vais l'initialiser à quelque chose OK. Donc, ici, je vais avoir un objet. Je vais l'initialiser en objet et utiliser des paires clé-valeur OK. Ce sera donc vide. Le nom sera vide. Si demain il y a plusieurs champs, je m' assurerai de mettre à jour cet objet ici. OK ? J'espère que cela a du sens. OK ? Donc c'est le nom ici, et je vais le dire comme ça. OK ? Cela me semble donc mieux. OK. Donc oui, ce sont des données de formulaire ici, et maintenant ce que nous devons faire, c'est ce que je ferais, je dirais à propos du changement de descripteur, d'accord ? Nous avons la valeur ici, et la valeur cible, la valeur du point cible. OK ? Donc, ce que je vais faire, c'est appeler Set Form data. Parce qu'à chaque modification, je veux m'assurer que la variable d'état contient les données mises à jour. Ici, je vais parler des données du formulaire. Donc, déstructurez d'abord les données du formulaire, quelles que soient les données qu'elles contiennent, ajoutez-les OK ? Ensuite, vous ajoutez des crochets, vous inscrivez le nom du point cible ici, d' accord, vous ajoutez deux points et vous dites valeur du point cible E. Oups, valeur. OK, ce genre de suggestion n'est pas bon, mais le point cible la valeur du point et je vais l'ajouter ici. OK ? Maintenant, ce que fait cette fonction ou ce morceau de code se trouve ici. Cela est donc clair lorsque cela s' appelle un changement de poignée. Chaque fois que vous modifiez quoi que ce soit dans le champ, le changement de poignée est appelé. Il transmet l'objet de l'événement, qui contient les détails de l'événement dans son intégralité, n'est-ce pas ? Donc, ce que nous faisons ici, c'est que nous voyons des données de formulaires fixes. OK, déstructurez les données du formulaire actuel. OK ? Donc, avec cet opérateur de propagation, nous disons de conserver les valeurs existantes données de formulaire, afin qu'elles se propagent d'elles-mêmes. OK ? Ensuite, nous obtenons le nom du champ ici. Maintenant, le nom est ici, si vous faites défiler l'écran vers le bas, c'est le nom, n' est-ce pas, qui est également l' attribut ici, n'est-ce pas ? L'attribut et celui-ci devraient correspondre ici. Le nom et ce nom devraient correspondre à la clé ici, non ? Donc ça correspond. Nous voyons donc point E, le nom du point cible, deux points, la valeur du point cible. OK ? Donc ça devient le nom colon, quelle que soit la valeur que tu as saisie, d'accord ? Et lorsque vous ajoutez ceci, c'est le champ qui a changé parce que c'est un champ dont nous parlons. Le champ qui a changé sera remplacé dans ces données étalées ici. C' est ce qui va se passer. Définir les données du formulaire sélectionnera toujours les dernières données existantes et mettra à jour l'état du formulaire. Laissez-nous vérifier si cela fonctionne correctement. Je vais faire une mise à jour complète. OK. Et ce que je vais faire, c'est , d' accord, nous utilisons en fait des données de formulaire. OK ? Ce que nous pouvons faire, c'est qu'ici, nous n' utilisons pas encore l'État. OK ? Donc, ce que nous ferions, c'est que si vous faites défiler la page vers le bas, nous ne voyons aucune sorte d'erreur ici. Ici, dans la valeur. Permettez-moi de décommenter cela Maintenant, nous avons un État, non ? Je peux donc dire le nom du point de données du formulaire, quelque chose comme ça. Nous sommes en train de lier cela à une variable d' état, en gros. Si j'actualise, vous ne verrez aucune sorte d'erreur et vous pouvez saisir du texte. Vous pouvez donc dire test. Vous pouvez voir tout ce qui arrive sur la console. Ici, au lieu d'imprimer la valeur du point cible, nous pouvons essayer d'imprimer le nom du point de données du formulaire ici. OK. Laissez-nous faire une mise à jour complète, puis vous pourrez dire test. Vous pouvez voir comment les données mises à jour arrivent. OK, donc c'est un pas en retard, nous avons saisi T et T n'est pas entré car la mise à jour de T est effectuée après l'impression de la valeur OK ? Donc, si vous déplacez cette ligne après avoir mis à jour l'état ici. OK, alors dans ce cas, vous allez voir les dernières nouveautés. OK ? Donc si je dis test, vous pouvez voir, oups, c'est toujours pareil ici OK, donc c'est parce que les mises à jour sont asynchrones, d'accord ? Et vous occupez en fait la même fonction. Vous essayez de l' imprimer sur la console, d'accord ? Mais l'État est parfaitement mis à jour, d'accord ? n'y a aucun problème en tant que tel, donc je vais me débarrasser de ce journal des points de la console pour le moment, d'accord ? Maintenant, laissez-nous nous occuper de la soumission ici. OK. Alors, que se passe-t-il lorsque vous soumettez le formulaire ? C'est bon. Maintenant, lorsque vous soumettez le formulaire, nous indiquerons d'abord le point E pour empêcher la valeur par défaut. OK. Maintenant, qu'est-ce que E est ici ? Nous n'acceptons pas E, nous devons donc accepter le parent, désolé, nous devons accepter le paramètre de type E du nom E, qui est un événement. Je dirais empêcher le défaut, nous le faisons parce que nous ne voulons pas le comportement par défaut ici. comportement par défaut lors de la soumission dans les navigateurs est donc le rechargement de la page. Ce n'est pas ce que je veux. OK ? Je vais donc simplement faire un journal des points de la console. Je vais dire les données du formulaire soumises. Ici, et ici, des données de formulaires, quelque chose comme ça. OK, vous l'avez fait, et maintenant, si vous faites défiler la page vers le bas, d'accord, nous devons ajouter un moyen pour que les gens puissent soumettre le formulaire. Donc, ce que je vais faire, c'est ici à la fin, je vais avoir un bouton. OK, je vais appeler cela un bouton d'envoi, et le type de ce bouton est Soumettre. OK ? Quelque chose comme ça. Permettez-moi de rafraîchir ici, S et rafraîchir. C'est bon. Et nous pouvons voir que le nom est I love react. OK ? Laissez-moi vous soumettre. Vous pouvez voir les données du formulaire et vous pouvez voir que la variable d'état est mise à jour. Vous pouvez voir que le nom est I love react. C'est bon. Donc oui, ça marche très bien , comme vous pouvez le voir ici, d'accord ? Comment est cet état, quel est cet état ? Que fait cet État ? Cet état garde une trace des données qui existent dans le formulaire, o et nous utilisons l'objet, qui se compose de paires clé-valeur, n'est-ce pas ? Et comment fait-il le suivi des données ? Il assure le suivi à l' aide d'un changement de poignée. Donc, le changement de descripteur est déclenché lors d'un événement de changement, d'accord ? Ainsi, chaque fois qu'il y a un changement dans la zone de saisie, changement de poignée est déclenché, et il s'agit essentiellement de mettre à jour ce truc ici. Il s'agit essentiellement de mettre à jour les données du formulaire ici. Tu peux voir. Et les données du formulaire seront toujours à jour Tout ce que vous saisissez sera présent dans les données du formulaire, d'accord ? Ensuite, il gère la soumission. Comment gère-t-il la soumission ? Chaque fois que vous cliquez sur ce bouton, cela indique « empêcher les valeurs par défaut », et il s'agit simplement d'imprimer la valeur mise à jour dans les données du formulaire. OK. Voyons comment cela fonctionnera si vous avez encore un champ ici. OK. Maintenant, si vous avez un autre champ, laissez-moi le dupliquer ici. Je vais prendre ça. Au lieu du nom, j'ai maintenant un e-mail ici, d'accord ? Et le type est le courrier électronique. OK. Je dirais e-mail. Le nom est également e-mail ici, données du formulaire point e-mail ici, et le changement de pseudonyme est identique. OK ? Les données du formulaire pointent le courrier électronique, nous devons donc ajouter une valeur supplémentaire ici, n'est-ce pas ? Donc je vais dire ici. Je vais dire une virgule et j'ajouterai un e-mail, quelque chose comme ça. OK, c'est fait, et je vais faire comme ça. C'est bon. Donc c'est fait, non ? J'ai aussi un e-mail maintenant. Maintenant, faisons une mise à jour complète, et je peux taper iOveract je vais dire john at rate Oups, exemple.com. Laissez-moi vous soumettre. Au moment où je soumets, vous verrez que le nom est « I love React et que l'e-mail est joint à rate example.com J'espère que cela a du sens. Maintenant, le nombre de champs que vous avez, le nombre d'attributs que vous allez ajouter dans cet objet d'état ici, d'accord ? Donc, ces données de formulaire se chargeront de gérer l'intégralité des données du formulaire pour vous, d'accord ? Et ces deux fonctions vous aideront à gérer les données, accord, comment fonctionne la soumission, comment fonctionne le changement, etc. OK ? Et le formulaire peut continuer à s' allonger de temps en temps, non ? J'espère donc que vous avez pu me suivre, et j'espère que cela vous a été utile. 3. Dépannage : pièges courants dans les formulaires de base React: Il est donc temps de commencer à améliorer ce formulaire que nous avons créé, n'est-ce pas ? Et nous allons ajouter une sorte de validations sous cette forme particulière, n'est-ce pas ? Parce que, vous savez, lorsque nous travaillons avec des formulaires, les validations de formulaires sont courantes, et vous souhaiterez peut-être valider les données que l'utilisateur remplit dans les formulaires, n'est-ce pas ? C'est donc ce que nous allons faire. Donc, ce que je vais faire ici, c'est avoir une fonction ici , définie, d'accord ? Je vais dire const, valider. D'accord. Cette fonction de validation est donc une fonction flèche ici et je vais avoir la logique à l'intérieur de cette fonction. Donc, ce que je vais faire, c'est d'abord. La validation va donc nous donner des erreurs, et nous souhaiterons peut-être suivre les erreurs. Donc d'abord, je vais dire const ici. Je vais créer un état appelé erreurs, et je vais appeler set errors. D'accord. Maintenant, cela va nous aider à garder une trace de toutes les erreurs qui se produisent ici, d'accord ? Je vais l'initialiser pour vider les paires clé-valeur, d'accord ? Et dans Validate , je vais créer de nouvelles erreurs constantes, et créer un objet de paire clé-valeur vide, d'accord ? C'est bon. Maintenant, je vais dire si je vais voir les données du formulaire. Je dois vérifier si le nom est renseigné par utilisateur ou non. Je veux que le nom soit obligatoirement renseigné. Je vais donc dire le nom du point de données du formulaire point Trim. D'accord. Si cette valeur n'existe pas, j'ajouterai une exclamation Si cette valeur n'existe pas, c'est ce que cette condition vérifie. Je vais dire le nom du point d'erreur pour les nouvelles erreurs, et je dirai que le nom est obligatoire. D'accord ? Je dirais donc que le nom est obligatoire, quelque chose comme ça. C'est bon. Et ce que je ferais, c'est renvoyer de nouvelles erreurs. D'accord. Je renverrais donc de nouvelles erreurs, non ? Quelque chose comme ça. Donc, cette fonction crée des messages d'erreur. Il valide et crée des messages d'erreur et nous renvoie la paire clé-valeur, devrais-je dire Donc, ici, ce qui se passe, c'est le nouveau nom du point d'erreur. Cela va donc avoir un attribut de nom avec ce message. Mais cela nous donne un objet contenant essentiellement tous les messages d'erreur, et la clé est essentiellement le nom du champ ici, qui est le champ de nom. Vous pouvez donc voir ici qu'il s'agit du champ du nom. Hein ? Maintenant, ce que nous devons faire c'est déclencher cette validation ici. D'accord ? Maintenant, quand devons-nous déclencher la validation ? Nous verrons donc sur le handle submit. D'accord ? Je vais dire const, erreurs de validation D'accord, les erreurs de validation sont équivalentes à celles de validation, d'accord ? Quelque chose comme ça. C'est bon. Et je vais dire si je dois vérifier si les erreurs de validation contiennent des paires clé-valeur. Je dirais donc des clés enseignées par des objets. Donc, si l'objet touche des points pour des erreurs de validation, d'accord. La durée enseignée est supérieure à zéro ici. D'accord. Ensuite, ce que nous devons faire, c'est dire « erreurs de configuration ». D'accord, je vais définir les erreurs, et je vais dire les erreurs de validation. Comme ça. D'accord. Sinon, nous soumettrons le formulaire, n'est-ce pas ? S'il n'y a pas d'erreur de validation, nous devons envoyer le formulaire. Alors oups Donc, je vais juste avoir ce truc ici, je vais le couper et déplacer dans le bloc se parce que le formulaire ne doit être soumis qu'en l'absence d'erreur de validation. accord ? Quelque chose comme ça. C'est chose faite. D'accord. Et oui, je pense que c'est ça. Nous devons également afficher les messages d'erreur. D'accord ? Je vais donc faire défiler la page vers le bas. D'accord. Et ici, juste à côté du nom, d'accord ? Juste à côté du changement de nom sur le handle. OK, je vais avoir du code ici. Je vais dire que les erreurs sont tendues, le nom est ici. Si les erreurs pointent le nom, et je vais utiliser le terme logique et, et je vais dire span, et je vais et je vais dire span, et je vais juste terminer la balise span ici et je vais dire errors, Tt, name, quelque chose comme ça. D'accord. Alors maintenant, s' il y a une erreur, elle sera affichée ici, d'accord ? Cela n'est donc affiché que si cela est vrai. Si le nom du point d'erreur existe uniquement, il est affiché. Dans le cas contraire, il n'est pas affiché. D'accord ? Si je le soumets, je ne vois rien pour le moment. Cela ne fonctionne donc probablement pas parce que je pense que j'ai fait une erreur ici en matière de finition. La garniture est donc essentiellement une fonction. Ce processus ouvert et final me manque. D'accord. Permettez-moi de me rafraîchir. Et si je dis « soumettre », vous verrez que le nom est obligatoire. C'est bon. Et cela s'affiche d'une manière étrange car je n'utilise littéralement aucun CSS. D'accord, du CSS très basique. Mais tu comprends comment ça marche, d'accord ? Vous pouvez ajouter du CSS selon votre choix si vous le souhaitez. C'est bon. Donc, ce que je peux faire , c'est ici en espan, je peux dire style ici, ici même. Je peux dire qu'à l'intérieur de cela, je peux dire couleur, d'accord. Comme ça. OK, donc vous pouvez voir qu'il est maintenant de couleur rouge, non ? Et oui, les erreurs s'affichent, d' accord, ici. Pour ajuster les choses sur une nouvelle ligne ou pour faire un saut de ligne ici, ce que je peux faire, c'est qu' une fois l'élément span rendu, je peux ajouter une balise de saut de ligne ici comme ceci. D'accord. Cela garantira donc que les choses sont sur la nouvelle ligne, correctement, et que le message d'erreur s'affiche de cette façon. Mais vous pouvez voir comment le nom est requis, et je peux le taper. Je peux dire tester, et je peux voir soumettre. D'accord ? Oups, il est toujours là. 1 seconde Laisse-moi vérifier. Alors testez. Cela fonctionne bien. Et si je m'en débarrasse, d' accord, ce n'est pas là. Et puis si je tape, c'est toujours là. Ce n'est donc pas effacé parce que les nouvelles erreurs ou l'état d'erreur ici ne sont pas effacés. OK, nous ne sommes donc pas mis à jour lorsque je saisis les données, n'est-ce pas ? Donc, ce que nous devons faire, c'est ici pour gérer le changement, accord, pendant que nous saisissons les données ou sur le handle submit. OK, donc il vaut mieux que je m'occupe du changement de poignée ici. Donc, dans le cadre du changement de poignée , je vais créer un concept ici. OK, et je vais avoir la valeur du nom. D'accord. Et je dirais que c'est une cible. D'accord ? Donc, ce que je fais, c'est que je reçois le nom du champ et la valeur de l'endroit où le changement se produit. D'accord ? C'est ce que je fais ici avec ça, d'accord ? Ensuite, une fois les données du formulaire définies, je vais dire OK s'il y a valeur pour les erreurs et nommez, OK, où se produit le changement. D'accord. Dans ce cas, dites « const new errors », et je vais déstructurer les erreurs existantes, Restructurez ceux qui existent déjà. C'est bon. Ensuite, nous pouvons dire « supprimer les nouvelles erreurs », puis « nom ». D'accord. C'est un peu maniable ici. D'accord ? Et je vais dire définir les erreurs, et je vais définir le nouvel objet d'erreur, je vais dire les nouvelles erreurs. Comme ça. D'accord. C'est chose faite. Et maintenant, au fur et à mesure que nous changeons, vous verrez que l'erreur est en train d'être supprimée. D'accord ? Si je m'en débarrasse et si je dis Soumettre, nom est requis, et si je dis que j'adore React, l'erreur disparaît. Vous pouvez voir à quel point c'est dynamique. D'accord. Vous pouvez le mettre à jour et améliorer également pour d'autres champs. Mais dans ce seul domaine, vous avez également eu beaucoup de travail, n'est-ce pas ? Vous pouvez donc imaginer à quel point les validations peuvent devenir complexes ici D'accord. Donc, le but de faire tout cela et de vous le montrer était de vous montrer comment les formulaires peuvent être créés dans React sans utiliser aucune sorte de bibliothèque ici, comme des formulaires à crochets, d'accord ? Donc, si vous gérez vous-même les formulaires dans React, c'est tout ce que vous aurez à faire, d'accord ? Vous pouvez voir comme un formulaire avec seulement deux champs, vous aviez tant de choses à écrire. Il y a beaucoup de duplications de code, non ? Donc, pour plusieurs champs, la fonction de changement de poignée augmentera en taille, n'est-ce pas ? Il y aura beaucoup de code là-dedans. Pour la validation, vous devez ajouter d'autres validations, d'accord ? Par exemple, ici, nous ajoutons une validation dans la fonction de validation du nom, d'accord ? Vous devez également ajouter une validation similaire pour les e-mails. D'accord ? Maintenant, envoyez un e-mail si vous souhaitez ajouter une sorte de validation complexe, exemple vérifier, ajouter le taux et le format du courrier électronique, vous devrez écrire tout cela. D'accord. Cela ajoutera donc beaucoup de complexité ici. Cette méthode va également se développer, d'accord ? Et avec de nombreux champs, imaginez à quoi ressemblera le rendu, n'est-ce pas ? Cela va devenir délicat. Donc oui, c'est le problème que je veux souligner ici. Eh bien, une approche aurait été vous le montrer directement en utilisant les formulaires React Hook et en vous expliquant à quel point ils sont faciles à utiliser, d'accord ? Mais je voulais d'abord passer par le plus dur, d'accord ? Vous comprenez d' abord comment les choses sont gérées dans React à l'aide de JavaScript. D'accord. J'utilise donc également du code JavaScript et fonctionnalités de réaction telles que les états ici. D'accord ? Comment les choses sont gérées dans React à l'aide de JavaScript. OK, tu dois d'abord comprendre ça. Ce n'est qu'alors que vous en comprendrez l'importance. Donc, si vous passez par là, ce n'est qu' alors que vous comprendrez l'importance d' utiliser des formulaires React Hook ou une autre bibliothèque, n'est-ce pas ? C'est donc quelque chose que je voulais souligner. C'est bon. J'espère donc que vous avez une idée de la façon dont vous pouvez effectuer des validations, gérer les soumissions et gérer les messages d'erreur avec React et JavaScript 4. Libérer la puissance : une plongée approfondie dans le format React Hook: Salut, voilà. Il est donc temps de commencer à parler des formulaires React Hook. Donc, si vous créez un formulaire Google React Hook, vous serez redirigé vers cette page Web, ou vous trouverez ce lien sur google.com ou sur n'importe quel moteur de recherche favori de votre choix Donc reacthokfm.com. C'est le site web ici. N'oubliez pas de noter les traits d'union ici. D'accord ? Maintenant, c'est ce que nous allons utiliser ici, et vous pouvez voir que c'est une solution flexible, complète et facile à utiliser avec validation pour les formulaires React. D'accord ? Il y a beaucoup de fonctionnalités qu'ils mettent en évidence ici. Ils ont également une version sandbox de code que vous pouvez modifier et utiliser, d'accord ? Et vous pouvez voir les fonctionnalités, cela isole le rendu. Il faut donc minimiser le rendu, d'accord ? Tu t'abonnes, d'accord ? La performance est donc un aspect important de l'expérience utilisateur. Vous pouvez donc vous abonner à des champs de saisie individuels sans refaire le rendu complet du formulaire, d'accord ? Donc, ici, ça monte rapidement. Il offre donc de nombreux avantages par rapport à la gestion de formulaires traditionnelle et à React. Et si vous commencez, vous trouverez quelques extraits de code ici. D'accord ? Vous pouvez donc l'utiliser pour JavaScript, dactylographié, d'accord, selon vos besoins C'est bon. Je vais donc sélectionner JavaScript ici parce que vous utilisez React. Et ici, vous pouvez l'installer de cette façon. C'est donc une bibliothèque externe que vous utilisez et en utilisant le gestionnaire de packages NPM, vous pouvez l'installer sur votre système et l'ajouter à votre projet ici D'accord. Maintenant, voici quelques points que vous devez garder à l'esprit pour savoir comment cela fonctionne. Donc, la première chose à faire est que si vous avez créé un formulaire, OK. Tout d'abord, vous devez importer ce hook. OK, tu dois ajouter ce crochet. Ensuite, vous devez obtenir ces fonctions en fonction de ce que vous voulez, d'accord ? Donc, enregistrez la fonction. Il existe différentes fonctions que vous obtenez avec use form et use form avec React Hook Form ici. D'accord. Maintenant, le registre est quelque chose qui vous permet d' enregistrer un élément d'entrée ou n'importe quel type d'élément, essentiellement pour réagir à des formes de crochet. Et lorsque vous vous inscrivez, ce qui se passe, c'est la validation et tout est géré, même la soumission est gérée par React Hook Forms. D'accord ? Donc, s'inscrire est un moyen de demander à React Hook Forms de gérer cet élément particulier pour vous dans le formulaire, d'accord ? Il gère également la soumission. Vous avez donc ici handle submit comme vous pouvez le voir, et handle submit prend n'importe quelle fonction de votre choix que vous transmettez. D'accord ? C'est donc une fonction que nous transmettons. C'est la fonction flèche. Et quelle que soit la fonction que vous transmettez, elle est déclenchée après les validations et tout le reste par React Hoop Forms D'accord ? Et aussi, si vous voyez ici, vous êtes sur ce terrain. Vous pouvez voir que les deux points obligatoires sont vrais. D'accord ? Donc, si vous voulez que ce champ soit obligatoire, accord, vous pouvez avoir deux points sur true comme attribut ici, d'accord ? Et il est dit d'inclure la validation avec les règles de validation HTML requises, d' accord, et d'autres règles de validation HTML standard, d'accord ? Et vous pouvez afficher les erreurs de cette façon. C'est bon. Vous pouvez voir comment les erreurs sont affichées. Exemple d'erreurs requis. Vous avez donc accès aux erreurs ici. D'accord. Tout cela est donc automatiquement pris en charge, et si vous faites défiler la page vers le bas, si vous allez appliquer la validation, vous pouvez voir que ce sont tous les champs de validation. D'accord, vous pouvez voir, ce sont tous les champs de validation requis, modèle. Si vous souhaitez faire une sorte de correspondance de modèles. OK, si vous avez des règles de validation personnalisées, vous pouvez le faire. Vous pouvez définir un minimum et un maximum pour une valeur ici ou pour un champ ici. Tout cela, sans écrire trop de code, il vous suffit de spécifier ce que vous voulez et tout le reste est pris en charge. Maintenant, imaginez faire cela dans Vanilla JavaScript, n'est-ce pas ? Sans utiliser les formulaires React Hook. OK, imaginez faire ça, non ? Nous l'avons donc déjà fait dans l'une de ces applications que vous voyez ici. OK, donc je m'en sors. J'ai ce formulaire ici, et je gère tout, alors laissez-moi en plein écran, et je gère toutes les erreurs et validations ici, les messages d'erreur ici en utilisant ces fonctions, d'accord ? Et oui, pour deux champs seulement, il y a beaucoup de code, non ? Donc, ce que je vais faire, c'est un formulaire très simple que j'ai déjà. Ce que je vais faire, c'est réduire ce formulaire pour utiliser les formulaires React Hook. Et des choses comme la validation et les s apprendront tout cela ici, d'accord ? Donc oui, c'est quelque chose que nous allons aborder. D'accord ? Donc, ce que je vais faire, c' est que tout d'abord, nous devons installer React Hook Forms. Donc tu peux le copier, d'accord ? Et venez ici, dirigez-vous vers le terminal. D'accord. Et vous pouvez l'ajouter ou l'exécuter dans le répertoire racine de votre projet. Maintenant, une fois que vous aurez fait cela, il y aura un petit traitement en fonction de votre connexion Internet, vitesse et de votre système, mais il devrait être rapidement installé. Je vais minimiser cela maintenant. Et si vous venez ici pour empaqueter Jason, vous verrez des formulaires React Hook être ajoutés. Alors laisse-moi venir ici. Vous pouvez voir React Hook se former, non ? Cela a donc été ajouté à notre liste de dépendances. C'est bon. Et ce que nous devons faire maintenant, c'est créer de nombreuses fonctions pour gérer les modifications, les soumettre, les valider, etc. Nous n'avons pas besoin de tout cela. Je vais me débarrasser de tout ça. D'accord ? Je vais juste supprimer tout ça. Je vais juste réduire cet exemple ici, d'accord ? Lors de la soumission, nous transmettrons quelque chose, d'accord ? Nous n'avons pas non plus besoin de valeur. Ce champ de saisie sera donc également réduit ici. D'accord. D'accord. Donc, en fait, je vais me débarrasser de tout ça. Alors voilà. OK, ce sera un champ de saisie très simple maintenant, accord, saisie et oups Je pense donc que je vais avoir un réservoir à fermeture automatique. Je vais m'en débarrasser, d'accord ? D'accord. Et je vais devoir, en fait, me laisser faire une chose. Je vais juste avoir le bouton ici, d'accord ? Ou j'ai juste les étiquettes. Je vais supprimer ces champs de saisie ici. D'accord ? Je vais juste avoir les étiquettes. OK, j'ai donc l' étiquette ici. J'ai l'étiquette ici. OK, je vais supprimer tous les champs de saisie. Il existe un bouton d'envoi, qui est nécessaire pour soumettre le formulaire. C'est ça. Je viens de faire beaucoup de ménage. Je vais également me débarrasser de l' entrée en haut. Nous ferons de nouvelles contributions chaque fois que nous en aurons besoin, d'accord ? Je n'ai pas non plus besoin de Handle Submit, d'accord ? Maintenant, c'est un formulaire dont j'ai version allégée assez simple. D'accord. Je vais juste le supprimer. Il n'y a encore rien dans le formulaire. Je n'ai pas ajouté de champs de saisie. D'accord ? Maintenant, tout d'abord, ce que nous allons faire, c'est utiliser React Hook Form. Je vais donc dire Importer, utiliser le formulaire ici. Vous pouvez voir cette suggestion. Utilisez le formulaire de React Hook Form. Je vais donc simplement le sélectionner et vous devrez importer les éléments ajoutés. D'accord. Maintenant, ce que vous allez faire, c'est que nous avons besoin, je dirais, de const. Nous devons nous inscrire, et je dirais d'utiliser le formulaire ici. Donc, en utilisant ce hook, d'accord, je dois importer ou obtenir ces deux fonctions. Alors inscrivez-vous et je vous dirai de gérer et de soumettre, d'accord ? Voici donc les deux fonctions ou propriétés que vous pouvez définir. D'accord. Ce sont les deux fonctions auxquelles vous devez accéder, d' accord, depuis le formulaire d'utilisation. OK, et c'est ce que nous faisons ici. Donc, après avoir eu accès à ces deux fonctions telles que l'enregistrement et le traitement soumission, d'accord, nous en parlerons. Alors, qu'est-ce que le registre ? D'accord ? Pourquoi devez-vous vous inscrire ? Register est donc une fonction fournie dans le hook use form, qui est fourni pour espionner le formulaire React Hook, et elle est utilisée pour enregistrer les détails que vous souhaitez que le formulaire React Hook gère. D'accord ? Par exemple, s' il existe un champ de saisie, vous souhaiterez peut-être enregistrer ce champ en particulier avec React Hook Form. Et pourquoi souhaitez-vous vous inscrire ? Parce que vous voulez que le formulaire React Hook gère la validation, la soumission, tout. Vous voulez que React Hook Form suive les modifications dans chaque champ de saisie et tout ça. OK, à cause de ça, vous voudriez dire à React de Form gérer ce champ en particulier pour moi, n'est-ce pas ? Comment le dirais-tu ? Vous le faites à l'aide de Register, ici. D'accord ? Permettez-moi donc d'ajouter un champ de saisie ici. Je vais donc juste dire input ici, quelque chose comme ça. D'accord ? Et je vais ajouter une étiquette à fermeture automatique. Je n'en ai pas besoin. D'accord. Et ici, je dirais que je vais ajouter deux points, désolé, pas deux points. Il s'agit de crochets ronds. Je vais dire « points gratuits » et m'inscrire. D'accord. Et ici, je vais transmettre le nom, quelque chose comme ceci. C'est ainsi que vous vous inscrivez. D'accord ? Donc c'est fait, d'accord ? Nous avons ajouté register, et ce que vous pouvez maintenant faire c'est que nous aurons une fonction d' envoi, donc je peux dire const on submit submit, je vais utiliser la fonction flèche ici OK, quelque chose comme ça et je dirais console point log. D'accord ? Journal. Je dirais des données ici. D'accord ? Il s'agit donc d'une donnée de formulaire que je souhaite enregistrer ici. Maintenant, gérez « Soumettre ». Nous devons donc dire à handle submit que, hé, utilisez cette fonction pour gérer l'envoi pour moi. D'accord ? Donc, ce que je vais faire, c'est venir ici pour former, je vais dire gérer la soumission Oups. Donc 1 seconde. Je vais dire lors de la soumission, tout d' abord, lors de la soumission. D'accord. Et vous allez dire handle submit et vous allez dire on submit, quelque chose comme ça. D'accord ? C'est chose faite. D'accord ? Maintenant, ce qui se passera c'est que chaque fois que la soumission aura lieu , d' accord, cette fonction sera déclenchée avec les données. D'accord ? Voyons si cela se passe bien. D'accord ? Je vais vérifier ça. Je vais donc passer à la console. Je vais faire du hard or fresh. Je vais effacer cela et je vais dire « soumettre le test ». Vous pouvez voir le nom comme test et le nombre de lignes de code que vous avez dû écrire. D'accord ? Il vous suffisait de l'enregistrer. Tout d'abord, avant de vous inscrire, vous deviez effectuer quelques tâches administratives pour importer les formulaires relatifs aux réacteurs Vous avez accès à ce registre et gérez le formulaire de soumission depuis l'utilisation, d'accord ? Ensuite, vous venez d' enregistrer votre nom, et maintenant vous recevez les données ici. D'accord ? Maintenant, le courrier électronique n' est pas enregistré, alors permettez-moi également d'ajouter un e-mail ici. D'accord ? Donc, si je dis e-mail, d'accord. Et c'est un e-mail pour moi, d'accord. Et si je n'enregistre pas ce champ de saisie, il ne fonctionnera pas, mais je dois m'inscrire. Je vais donc dire trois points, quelle est la syntaxe ? Je vais voir s'inscrire, et je vais spécifier l'adresse e-mail ici. Je vais enregistrer ça. Au moment où vous le faites, si vous actualisez, si je soumets, vous verrez le nom et l'e-mail vides. D'accord ? Maintenant, quelles que soient les modifications apportées, d'accord, test et A, vous verrez les deux apparaître dans les données. D'accord ? Tu ne fais presque rien. Vous ne gérez pas les États, vous ne faites rien. D'accord ? Vous venez de dire React Hook Forms qui, hé, enregistrent ceci et s'en occupent pour moi. D'accord ? Maintenant, React Hook Form fait tout pour moi, pour vous, essentiellement. Vous avez « on submit », vous dites « handle submit ». Il s'agit du handle submit from React Hook form, et vous donnez la fonction qui doit être déclenchée lors de la soumission, d'accord ? Parce que vous avez peut-être une soumission personnalisée ou une méthode personnalisée de soumission des données, n'est-ce pas ? Vous voudrez peut-être passer un appel EPI ou quelque chose comme ça. Donc, une fois toutes les validations terminées, OK, cette fonction est appelée avec les données C'est bon. Donc pour tout dire ou pour tout résumer, d'accord ? Use form initialise la gestion des formulaires avec React Hook Form D'accord ? C'est ce que nous faisons. Inscrivez-vous, nous les utilisons pour enregistrer les champs de saisie pour la gestion du formulaire. Handle submit gère les soumissions de formulaires et collecte les données du formulaire pour nous. Et on submit est une fonction personnalisée qui est déclenchée lors de la soumission du formulaire et qui enregistre simplement les données du formulaire. accord ? Maintenant, l' utilisation des formulaires React Hook présente de nombreux avantages, d'accord. Le premier avantage que vous pouvez tirer de ce code est moins de code standard. Vous n'avez pas besoin d'écrire beaucoup de code pour que vos formulaires soient opérationnels. Moins de code standard, et votre composant a également l'air simple, n'est-ce pas ? De meilleures performances. Désormais, de meilleures performances permettent minimiser le rendu à chaque changement de valeur Donc, s'il y a un quelconque changement de valeur, si vous changez quelque chose dans le champ ici, d'accord ? Dans le traitement traditionnel des formulaires et la réaction, le composant est rendu à nouveau. Mais dans React to Forms, le composant est que le formulaire n'est pas rendu à chaque fois que vous tapez dans un champ, ce qui accélère votre formulaire, en particulier pour les applications volumineuses. Les validations sont simplifiées. Nous n'avons pas encore abordé les validations, mais des choses comme vérifier si un champ est rempli ou si l' e-mail est valide Tous ces types de validations standard sont intégrés. Il vous suffit d'ajouter un mot, et de dire à React Hook Forms que « Hé, faites ce type de validation, et c'est tout ». C'est le cas pour toi, non ? Vous n'êtes pas obligé d'écrire des choses manuellement pour ces éléments standard, n'est-ce pas ? Donc, dans l'ensemble, cela rend la gestion des formulaires très facile. Il facilite la collecte des données de formulaire, le suivi de celles-ci et vous n'avez pas besoin de mettre à jour manuellement l'état pour chaque champ de saisie comme vous faites avec les formulaires React classiques. C'est bon. Bref, cela vous facilite beaucoup la vie. D'accord ? J'espère que vous êtes impressionné par les formulaires React Hook, et oui, nous allons beaucoup explorer cette question. Et il est couramment utilisé. Vous le verrez donc également dans de nombreux projets. 5. Informations en temps réel : surveiller les valeurs des formulaires avec React Hook Form: Salut, voilà. Il est donc temps de commencer à parler de l'observation des valeurs avec React Hook Forms. Maintenant, que signifie observer les valeurs avec les formulaires React Hook ? Il y aura donc des scénarios dans lesquels vous voudrez garder une trace de la valeur que l'utilisateur donne en entrée au fur et à mesure qu'il tape, n'est-ce pas ? Et vous voulez que ce soit le cas, vous voudrez peut-être que ce soit un peu en temps réel, n'est-ce pas ? C'est donc là que la montre entre en scène. Alors, qu'est-ce qu'une montre ? La montre est une fonction, comme vous pouvez le voir sur l' exemple ci-dessous, d'accord ? Il nous est fourni par le formulaire React Hook, et en l'utilisant, vous pouvez observer n'importe quelle valeur, d'accord ? Maintenant, chaque fois que vous enregistrez un champ, d'accord, vous lui donnez un nom, n'est-ce pas ? Donc, lors de l'enregistrement, vous dites enregistrer ce champ, et c'est le nom du champ avec lequel je veux l'enregistrer. OK ? Donc, ici, dans cet exemple sur le site Web, vous pouvez voir que le champ de saisie est enregistré comme exemple de nom, n'est-ce pas ? Donc, vous importez la fonction de montre ici, puis vous dites « watch example ». Maintenant, chaque fois que vous tapez quelque chose dans le registre ici dans cette entrée de registre, cela se déclenchera et la montre aura la dernière valeur de ce que vous faites. Il s'agit donc essentiellement de garder un œil sur ce qui se passe avec cette entrée et sur la valeur qui en sort. Essayons cela de manière pratique pour mieux comprendre. Je vais donc passer à notre application. Nous avons cette application simple dans laquelle nous utilisons des formulaires de réaction. Quelques champs que nous utilisons Input, nom et e-mail de saisie. OK ? Maintenant, le nom est enregistré avec ce nom ici, et l'e-mail est enregistré avec le nom e-mail. accord ? Maintenant, comment observons-nous la valeur ? Donc, tout d'abord, la première étape est de saisir la montre ou d'ajouter une surveillance ici, d'accord ? Et puis ici, ce que nous pouvons faire, c'est que je peux dire « regardez » et ici, je peux dire un nom, quelque chose comme ça. Je veux regarder le nom. Je peux attribuer la valeur ici à une variable ou me laisser simplement enregistrer la valeur. Voyons ce qui va se passer. OK ? Je vais donc dire console. Oups, la console point log par ici, et quelque chose comme ça OK. Laisse-moi juste économiser. Vous pouvez voir l'indéfini arriver. OK. Maintenant, en tant qu'iPane, vous pouvez voir la montre se déclencher Tu peux voir, non ? La montre se déclenche. Quoi que je tape , vous pouvez le voir, comme le résultat ici sur la console. C'est une montre pour toi, non ? C'est donc une montre. Maintenant, vous avez un autre champ ici, qui est le courrier électronique, n'est-ce pas ? Maintenant, même si un e-mail est saisi, d'accord ? Je suis en train de taper un e-mail ici. OK. Il n'y a donc pas de surveillance des e-mails ici, non ? Vous pouvez donc également ajouter une surveillance pour les e-mails, et vous pouvez le faire en utilisant la même syntaxe, n'est-ce pas ? Maintenant, plutôt que d'avoir la valeur du nom enregistrée de cette façon, je vous recommande d' utiliser use effect, use effect hook. Donc, ce que je ferais normalement, c'est commenter cela. OK. Permettez-moi de commenter cela. Je dirais que Const a regardé le nom ici, accord. Et je vais l'attribuer à la montre et je vais dire le nom. OK. Nous voulons donc utiliser l'effet d'usage. Je dirais « const, j'ai regardé ». Envoyez un e-mail ici et je dirais « regardez le courrier électronique ». Je surveille donc les deux terrains ce moment. C'est ce que je veux faire. Ce que je vais faire, c'est utiliser l'effet d'usage. Maintenant, il y a une raison pour laquelle j' utilise l'effet d'utilisation, car je veux la journalisation de la valeur des noms séparée de ma logique de rendu, juste ici. Et l'utilisation de l'effet d'usage est une bonne pratique pour tous ces types d'effets secondaires. Je vais utiliser l' effet d'usage. Il s'agit d'une syntaxe. J'ai une fonction flèche ici, comme celle-ci, et j'ai une dépendance E comme ça. O Il s'agit d'une syntaxe. OK. Ce que nous allons faire, c'est ici dans cette logique particulière, je dirais se connecter ici, journal de la console, et je dirais valeur du nom, nom, et je dirais nom regardé, quelque chose comme ça. OK. Et je vais m'en débarrasser et ici je vais dire le nom de la montre. Ainsi, chaque fois que le nom de la montre change, ce crochet d'effet d'utilisation fonctionne et imprime la valeur du nom de la montre. Vous pouvez avoir un autre crochet comme celui-ci, ajoutez-le ici. OK ? Et cela pourrait être lié à un e-mail. Courrier électronique. OK. Vous pouvez donc dire e-mail regardé, e-mail surveillé, quelque chose comme ça. Maintenant, je vais rafraîchir, vous pouvez dire nom comme vous pouvez dire j'aime, réagir. Vous voyez que le nom est imprimé ici. Email, vous pouvez dire e-mail à t example.com. Vous pouvez ainsi voir comment vous surveillez les valeurs et si vous les soumettez, vous verrez les données être imprimées. Maintenant, la question est de savoir ce qui se passe. OK. La question est donc de savoir ce qui se passe et pourquoi vous voudriez utiliser une montre. Quels sont les vrais cas d'utilisation ? OK ? Tout d'abord, lorsque vous enregistrez le champ avec les formulaires React Hook, vous l'enregistrez en fait en utilisant un nom, n'est-ce pas ? Le nom ici est le nom et ici, le nom est l'e-mail. OK ? formulaire React Hook identifie donc ce champ comme nom et e-mail. Maintenant, lorsque vous voulez regarder les valeurs, vous pouvez les importer ou obtenir cette fonction depuis le formulaire du réacteur et vous pouvez les regarder de cette façon. Maintenant, toute modification sur le terrain déclenchera cette mise à jour ici, et ce , en temps réel. OK ? Maintenant, si vous souhaitez afficher ces champs, je vous recommande d' utiliser Effecto ici. Parce que cela sépare l'impression des valeurs de la logique de rendu, d'accord ? Maintenant, pourquoi voudriez-vous en faire usage ? OK ? Donc, la première chose à faire est le rendu conditionnel. Vous pouvez donc veiller au rendu conditionnel de certaines parties de votre formulaire en fonction des valeurs saisies par l'utilisateur OK ? Par exemple, afficher ou masquer champs supplémentaires en fonction de la sélection électronique. OK ? Donc ce genre de choses, s'il y a différents types de champs ici. Nous avons donc ici des informations. Si vous avez sélectionné ici une liste déroulante ou un bouton radio. Ensuite, vous pouvez observer la valeur de ce qui se passe. Et en fonction de ce que l' utilisateur sélectionne, accord, vous pouvez afficher le formulaire de manière conditionnelle Et c'est en temps réel avant même que les données ne soient soumises. Hein ? Il s'agit donc d'un cas d'utilisation. Validation en direct, vous voudrez peut-être avoir une validation en direct ici pendant que l'utilisateur tape le nom, d'accord ? Et s'il saisit ou essaie de saisir un chiffre, vous voudrez peut-être afficher immédiatement un message d'erreur indiquant que le numéro n'est pas autorisé. Par exemple, le nom ne peut pas être numérique. Vous pouvez donc effectuer tous ces types de validations en direct ou afficher des indices au fur et à mesure que l'utilisateur tape Donc, si l'utilisateur saisit un titre, disons que le titre est un champ. Et si vous tapez un titre très long, vous pouvez avoir l'impression qu'il fait plus de dix caractères, d' accord, ce n'est pas recommandé, quelque chose comme ça, non ? Ce n'est pas une erreur, mais une suggestion à un utilisateur ou un indice façon dont vous pouvez améliorer le titre de votre formulaire, par exemple, d' accord ? Formulaires complexes. Donc, si vous avez des formulaires complexes, vous pouvez utiliser Watch pour formulaires en plusieurs étapes afin de surveiller et de valider les données à chaque étape avant de continuer et avant même que le formulaire ne soit soumis. Voici donc quelques-uns des cas d' utilisation directe de la montre, d'accord ? Et je crois que vous pouvez imaginer à quel point c'est utile, non ? Et c'est très utile car il est assez efficace en temps réel et très facile à utiliser avec un minimum de code. Nous avons littéralement écrit très moins de code, d'accord. Ce code sert littéralement à imprimer les valeurs, d'accord ? Ce n'est pas nécessaire si vous ne voulez pas imprimer, mais c'est littéralement ce que c'est. OK, vous venez de recevoir une montre et vous utilisez la fonction montre ici, n'est-ce pas ? J'espère que cela vous sera utile. Et ici, avec US Effect, ces deux hooks d'effets américains sont séparés car ils sont déclenchés lors du changement du nom de la montre et lors du changement d' e-mail de la montre. C'est bon. J'espère donc que cela vous sera utile et j' espère que vous avez pu suivre. 6. Expérience utilisateur fluide : ajouter des validations sous forme de React Hook: Il est donc temps de commencer à parler de validations avec React Hook Form Maintenant, comment fonctionne la validation ? Les validations fonctionnent donc de manière très simple avec très peu de code standard, d'accord ? Vous pouvez également définir règles de validation lors de la définition des champs. Par exemple, ici sur mon écran, je suis sur la page Get Started du formulaire React Hook, et ici vous voyez cet exemple. OK, c'est le premier exemple que tu vois. Cela inclut une validation de base. Tu peux voir. Il est donc dit d'inclure la validation avec règles de validation HTML requises ou toute autre règle de validation HTML standard. Et vous pouvez voir comment cela inclut la validation. Il s'agit d'abord d'enregistrer le champ ici. OK ? Et puis il est dit que c'est vrai. OK ? Maintenant, cela enregistre ce champ et indique également au formulaire React Hook que, hé, ce champ nécessite une valeur. L'utilisateur ne peut donc pas contourner ce champ ou soumettre le formulaire sans transmettre une valeur pour ce champ. OK. Maintenant, si le champ n' est pas rempli , ou si aucune valeur n'est trouvée ici, et s'il y a une erreur de validation, vous obtenez l'objet d'erreur, vous avez accès à l'objet d'erreur, comme vous pouvez le voir ici. OK ? Maintenant, cet objet d'erreur fait partie du formulaire Use Hook, et c'est une fonctionnalité puissante qui est utilisée pour gérer et afficher les erreurs de validation pour les champs du formulaire. OK ? Cet objet va donc garder une trace de toute erreur de validation qui se produit lorsque l'utilisateur remplit le formulaire, d'accord ? Et chaque champ de formulaire aura sa propre entrée dans l'objet des erreurs, ce qui permettra d'identifier facilement quel champ pose problème et quel est ce problème. OK. Maintenant, comment ça marche ? Ainsi, lorsque l'utilisateur soumet le formulaire. Donc, ici, j'ai enregistré la validation comme vraie. OK, j'ai besoin de la réponse vraie, et j'ai les erreurs ici, d'accord ? Désormais, lorsque l'utilisateur soumet le formulaire, le formulaire de réaction vérifie les valeurs d'entrée par rapport aux règles de validation que vous avez indiquées. C'est donc une règle de validation que j'ai définie ici dans cet exemple, d'accord ? Maintenant, dans cet exemple, nous exigeons que ce champ ne soit vide et l'utilisateur soumet un champ vide. L' erreur de validation est donc déclenchée et l'objet d'erreur ici est mis à jour, d'accord ? Et le message d'erreur de validation est ajouté ici. OK ? Et c'est affiché ici. Tu peux voir ? Donc, aucun exemple d'erreur n'est requis. Donc, si cela a une valeur, affichez ce message d'erreur. Vous pouvez voir comment il est affiché. OK ? Voici donc comment vous pouvez utiliser les validations ici. OK ? Alors laissez-moi vous donner un aperçu de ce qui se passe ici. OK ? Maintenant, je vais passer à notre base de code. OK. Et nous avons ici un formulaire très simple. Nous enregistrons deux champs ici. OK. Et ces deux champs, ce qu'ils font, c'est essentiellement des champs de saisie comme le nom et l'e-mail ici. OK ? Maintenant, ce que nous ferions , c'est d'abord moi qui viendrais ici. Lors de l'enregistrement de l'e-mail, désolé, pas de courrier électronique, je vais enregistrer le nom ici. Lors de l'enregistrement, conformément à la syntaxe ici, vous pouvez voir la syntaxe. Lors de l'inscription, vous transmettez un autre paramètre avec les règles de validation, n'est-ce pas ? Je vais donc simplement le copier. OK. Vous pouvez le copier d'ici. Vous venez ici et vous pouvez le coller dedans. OK ? Ce qui est requis est donc vrai ici. OK ? Maintenant, une fois que c'est vrai, vous devez accéder à l'objet d'erreur, n'est-ce pas ? Vous pouvez donc dire état du formulaire ici, état du formulaire, refroidir, et vous aurez des erreurs, quelque chose comme ça. OK ? C'est donc quelque chose que nous avons maintenant, n'est-ce pas ? Et maintenant, ce que vous pouvez faire, c'est en dehors de l'étiquette, d'accord, vous pouvez avoir des erreurs qui s'affichent. Erreurs apprises, vous pouvez dire le nom, d'accord. Alors un nom, car qu' est-ce qu'un nom de champ ? Le nom du champ est name. OK ? Vous pouvez donc dire le nom du point d'erreur, et je vais afficher le message ici. OK ? Donc je peux dire P, et je peux dire que le nom est obligatoire, quelque chose comme ça, d'accord ? Je vais enregistrer ça. Je vais appuyer sur Actualiser. OK ? Si vous soumettez, vous verrez que le nom est obligatoire, n'est-ce pas ? Qu'avons-nous fait pour cela ? Nous venons d'ajouter une propriété , nous venons d'avoir accès à l'objet d'erreur et nous affichons le message d'erreur de manière conditionnelle C'est ça. C'est ça. C'est aussi simple que cela et cela crée un code standard. Cela réduit le code standard, d'accord ? Vous n'avez donc pas besoin d'écrire beaucoup de code standard ici Il suffit de dire ce qui doit être fait et tout le reste est pris en charge. OK ? Maintenant, dans cet exemple, comment cela fonctionnait, c'est que lors de l'enregistrement, nous avons dit s' agissait d'un champ que nous enregistrons avec le nom, n'est-ce pas ? Donc, ce qui s' est passé, c'est que les erreurs sont enregistrées dans ce nom , ici, le nom du champ. Le nom du champ est donc nom, ici le nom du champ est e-mail. OK. Donc, sur cette base, les erreurs sont enregistrées ici, d'accord ? Et ils sont affichés de manière conditionnelle à l' aide de la logique et fonctionnent ici OK ? Maintenant, c'est comme ça que ça fonctionne, d'accord ? Ici, nous disons en fait que c'est vrai. Mais ce que vous pouvez faire est requis true a un message d'erreur par défaut ici, n'est-ce pas ? Ce que vous pouvez faire, c'est dire que le nom du point d'erreur est un message. Voyons quel est le message que nous allons recevoir. Vous pouvez donc voir que nous n'en voyons aucune. OK, je dois vraiment emballer ça. Comme ça. OK ? Donc ça n'existe pas, d'accord ? Maintenant, ce que nous pouvons faire est ici, au lieu de dire : OK, ce n'est pas une erreur. Ce sont des erreurs. J'en suis désolée. OK. Alors laissez-moi vous rafraîchir. Si je soumets, d'accord ? Aucun message d'erreur ne s'affiche. OK ? Maintenant, vous pouvez définir un message d'erreur personnalisé ici lorsque l'enregistrement est requis. Vous pouvez donc dire que le nom est obligatoire, d'accord ? Et tu peux le sauvegarder. Au lieu de vrai, vous transmettez le message d'erreur. Et si vous le soumettez, vous verrez le message d'erreur personnalisé s'afficher, n'est-ce pas ? C'est donc ainsi que vous pouvez également faire les choses. Il s'agit également d'un exemple dans lequel vous, au lieu de transmettre vrai, vous transmettez le message d'erreur lui-même et vous affichez les messages d'erreur de cette façon. C'est bon. C'est donc une façon de faire les choses. Maintenant, outre les exigences, il existe des scénarios dans lesquels vous souhaitez des règles supplémentaires ou des validations complexes Donc, si vous arrivez sur le site Web de React Hook Fm, ici sur le côté gauche, dans la navigation, vous devez appliquer l'onglet de validation. Cliquez dessus, et vous verrez ici une liste de toutes les règles de validation prises en charge. Vous pouvez voir la longueur minimale, la longueur maximale, tout cela, d' accord, vous pouvez contourner le problème. Vous pouvez voir le prénom, ou la longueur maximale est de 20. Longueur minimale que vous pouvez définir en fonction de la manière dont vous le souhaitez. OK. Donc ici, vous pouvez entrer et ici vous pouvez dire obligatoire, d'accord ? Euh, vous pouvez dire obligatoire, le nom est obligatoire, et je peux dire longueur minimale, longueur M, et je peux dire longueur minimale de deux, par exemple, d'accord ? Et puis ici, je vais passer à la valeur booléenne Je vais supprimer le message, et ici, je vais avoir le message comme OK, je dirai que le nom est obligatoire et doit comporter au moins deux caractères. OK ? Quelque chose comme ça. Je vais enregistrer ça. Et maintenant, si vous actualisez, si vous pouvez dire S, vous pouvez voir que le nom est obligatoire et qu' il doit comporter au moins deux caractères. Si je tape à nouveau S, vous verrez le formulaire être envoyé. OK. Donc oui, c'est ainsi que fonctionnent les règles de validation. Et sans cela, si vous ne mettez aucun nom ici, vous verrez cette validation être déclenchée, n'est-ce pas ? Donc ça marche très bien, d'accord ? Vous pouvez également le faire pour le courrier électronique, d'accord ? Vous pouvez dire que l'exigence est vraie ici. OK. Ce qui est requis est vrai, quelque chose comme ça. OK. Et, oups, il faut que ce soient des prix dici Quelque chose comme ça, d'accord ? Et ici, vous pouvez dire qu' au lieu du nom du point d'erreur, vous l'aurez ici. Des erreurs apparaissent dans les e-mails, quelque chose comme ça. OK ? Vous pouvez donc dire qu'un e-mail est obligatoire. D'accord ? Le courrier électronique est obligatoire, vous pouvez vous en débarrasser et l'enregistrer. Et maintenant, le courrier électronique est également requis. Vous pouvez voir que le nom est obligatoire, l'e-mail est requis. OK ? Vous pouvez également ajouter un style CSS si vous le souhaitez, d'accord. Mais c'est ainsi que cela fonctionnera. Et vous avez d'autres choses, comme la correspondance des motifs. OK, tu peux faire une correspondance de modèles. Vous pouvez voir ici, correspondance de modèles en action, vous pouvez spécifier le modèle que vous souhaitez faire, ce qui pourrait être très utile pour les e-mails. OK. Donc, si vous avez un e-mail ici ou modèle d' e-mail par rapport auquel vous souhaitez le valider, vous pouvez également l'exécuter. Donc, ce que nous pouvons faire, c'est pour le courrier électronique, nous pouvons avoir ce genre de modèle. OK, alors je vais venir ici. OK. J'ai besoin d' un e-mail ici. OK. Obligatoire, je l' ai précisé. Je vais dire modèle, quelque chose comme ça, je vais avoir ceci et je vais spécifier ce modèle. Je vais créer ce patron. Il s'agit donc d'un modèle qui existe pour la validation des e-mails. OK, j'ai ajouté ce modèle. Vous pouvez faire des recherches normales sur Google et obtenir ce type de modèle, accord, ou je partagerai ce code avec vous tous pour cela Et si vous sauvegardez ceci, d'accord, laissez-moi rafraîchir. Si je soumets, un e-mail est requis. Je tape ceci, je tape ceci. Néanmoins, un e-mail est requis. Vous pouvez voir que l'e-mail n'est pas valide. Donc, si je tape ceci, d'accord, e-mail n'est toujours pas valide. Je peux dire .com, et alors cela devrait probablement fonctionner. Vous pouvez voir que le message d'erreur a disparu. Cet e-mail doit donc être valide, qu'alors qu'il fonctionnera. C'est bon. Il s'agit donc d'un modèle Javascript pour valider les e-mails, et je le cherche et je l'ai trouvé ici Donc, une chose que je veux souligner pour le nom ici, vous voyez ce message complet indiquant que le nom n'est pas un nom est obligatoire, et qu'il doit également comporter deux caractères, d'accord ? Mais ici, je veux juste souligner le message selon lequel il devrait y avoir deux caractères. Et si c'est vide, je veux le surligner comme si le nom était requis. OK. Donc, en fonction de l' erreur commise par l'utilisateur, je souhaite mettre en évidence ce message d'erreur. C'est donc également possible. Je vais vous montrer comment cela peut être fait. OK. Donc, ce que je vais faire ici, c'est juste commenter cela ici. OK. Je vais le dupliquer, d'accord ? Parce que je ne veux pas supprimer celui-ci. Je veux que tu y aies accès. OK, maintenant par ici, je dois m'inscrire. OK. Maintenant, dans le registre, je transmets obligatoire ici, requis comme ça. OK. Obligatoire est vrai. La longueur minimale est de deux. OK ? Maintenant, je vous avais dit qu'au lieu d'être obligatoire, vous pouvez faire passer le message, vous savez que vous pouvez transmettre le message ici, accord ? Attends une seconde. Je reçois un message d'erreur. Je ne sais pas pourquoi. 1 seconde Oups, j'ai raté les bretelles de fermeture ici. Je ne l'ai pas copié. C'est bon. C'est tout à fait normal. Ça arrive. Tu sais, je vais juste le fermer. OK. Oui. Ainsi, lorsque vous utilisez required, vous pouvez spécifier le message d'erreur. Je vais donc revenir à cette méthode. Je vais dire le nom. Oups. Je dirais que le nom est obligatoire, quelque chose comme ça. D'accord ? Maintenant, comment le spécifiez-vous pour la longueur ? D'accord ? Donc je vais l'avoir ici. Je vais me débarrasser de ce message. Je vais dire erreur, tot, nom, point, message, d'accord ? Je l'ai maintenant. D'accord ? Ce n'est donc pas une erreur, ce sont des erreurs. D'accord. N'oubliez pas d'avoir le bon nom d'objet ici. D'accord. Maintenant, ce que je peux faire, c'est que je peux faire mentionner à nouveau une paire clé-valeur ici, au lieu de deux pour une longueur minimale ici. OK. Je peux dire que cela fonctionnera, c'est une longueur minimale. Je vais m'en débarrasser de deux ici. Je vais ajouter Curly Pass ici. Et je dirais valeur. OK, il y a une propriété de valeur, je dirais 20. D'accord. Et je vais envoyer un message ici. Quel est le message que tu veux avoir, d'accord ? Je veux avoir un message car le nom doit comporter au moins deux caractères. Je vais copier ce message. Je dirais que le nom doit comporter au moins deux caractères. Terminé. Sauvegardez ceci. Maintenant, actualisez, et maintenant tapez a, je dirais a à ate gmail.com Je ne souhaite voir aucun message d'erreur par e-mail. Donc a@gmail.com, si je soumets, vous verrez que le nom doit comporter au moins deux caractères, n'est-ce pas ? Si je le supprime, le nom est obligatoire. Le nom doit comporter au moins deux caractères. Si je tape complètement et si je soumets, il doit comporter au moins deux caractères. Oups, j'en ai fait 20. Je suis désolée Je vais le sauvegarder à nouveau. Si je soumets, vous verrez les données soumises. Mais si vous réduisez ce nombre, les noms doivent comporter au moins deux caractères. Si vous le supprimez, le nom est obligatoire. Vous pouvez voir à quel point c'est dynamique. C'est une autre façon de faire les choses, d'accord. Je vais faire un petit zoom arrière, ou je vais simplement passer en plein écran. D'accord ? Vous pouvez voir le nom et le message. Permettez-moi de faire la queue. Permettez-moi de clore la page. D'accord, vous pouvez voir comment c'est structuré. Vous êtes donc en train de vous inscrire ici, en enregistrant le nom. Vous dites que c'est obligatoire, le nom est obligatoire. D'accord ? Si nécessaire, c'est un message que vous avez reçu, d'accord ? Pour la longueur minimale, vous dites que la valeur est deux, mais je veux aussi avoir un message. Vous l'avez donc transmis en tant qu'objet, qui est une paire clé-valeur ici, accord, vous pouvez le voir, et il prend maintenant un objet avec plusieurs règles de validation. Register a en fait le premier paramètre comme nom du champ, d'accord ? Le deuxième paramètre est en fait un objet ici. C'est l'objet entier, moi. Donc, de cette collibrase à cette collibrase. C'est l'objet entier qui est transmis pour enregistrement en tant que deuxième paramètre. Et à l'intérieur de cela, il y a aussi cette longueur minimale, où nous disons que la valeur est deux et que le nom doit comporter au moins deux caractères. Quel que soit le message d'erreur qui arrive, il s' affiche ici. Et vous pouvez voir à quel point c'était dynamique, d'accord ? Ce sont toutes des règles standard, n'est-ce pas ? Longueur minimale, longueur maximale, tout ce que vous voyez ici, longueur minimale, longueur maximale, d'accord, minimum max, modèle, vous savez, validez. C'est donc le maximum et le minimum requis. Tout cela est standard, non ? Pourquoi écririez-vous du code pour cela dans votre application, dans tous les champs de chaque composant Donc, si vous utilisez une application dédiée à Farm Heavy, imaginez à quel point elle sera fastidieuse pour vous Hein ? Et imaginez utiliser des formulaires React Hook dans une application riche en formulaires. Imaginez-vous en train de faire ça, d'accord ? Il offre donc toute la flexibilité. Vous pouvez valider les choses de cette façon, d'accord ? Vous pouvez même valider les choses de cette façon. OK ? Je ne veux pas transmettre de message. Je souhaite avoir un message standard pour toutes les règles de validation. Tu peux le faire. Je vous ai montré comment vous pouvez le faire, n'est-ce pas ? C'est ce qui fait la beauté de React Hook Forms. C'est vraiment une façon incroyable de gérer les formulaires dans React. D'accord ? J'espère que cela vous plaît et j'espère que vous trouverez toutes les connaissances que vous acquérez grâce à cette conférence utiles, d'accord ? React Forms a donc intégré des règles de validation telles que la longueur minimale, la longueur maximale, tout ce que nous voyons ici, d'accord ? Vous pouvez également avoir des fonctions valides personnalisées pour une logique de validation complexe. Par exemple, si vous pensez avoir besoin de quelque chose de plus, vous pouvez écrire vos propres fonctions. D'accord. Mais c'est au-delà de ça, non ? Vous pouvez gérer les erreurs par le biais de l'objet d'erreur. D'accord ? Vous avez accès à l'objet d'erreur et vous pouvez jouer avec l'objet d'erreur. Performances, la réaction au formulaire est optimisée pour les performances, en particulier pour les formulaires plus volumineux. C'est bon. J'espère donc que vous trouvez cela utile et j' espère que ce sont des informations précieuses pour vous tous. 7. La vitesse est importante : comparer les performances des formulaires de base et du formulaire React Hook: Comparons donc maintenant les performances d' formulaire normal ou d'un formulaire de base qui n'utilise pas les formulaires React Hook. J'ai donc le code d' un formulaire de base ici, et nous n'utilisons pas de formulaires React Hook ici. C'est bon. Donc, une chose, j'ai oublié de supprimer cette entrée. Il s'agit donc de l'entrée pour les formulaires React Hook. Donc, dans cette forme particulière, nous n'utilisons pas React a pris des formes, comme je l'ai dit. C'est un formulaire très basique avec e-mail, nom, et nous utilisons on handle submit et on change event lesna ici, et la valeur est comme liée à cet état ici. OK. Et vous avez cet énorme effet hook qui nous permet de savoir quand le formulaire est réellement rendu ou combien de fois il est rendu à nouveau, n'est-ce pas ? Je n'utilise donc pas de tableau de dépendances ici, et comme je n' utilise pas de tableau de dépendances, cela sera déclenché à chaque nouveau rendu. Et j'ai ceci sur le handle change, qui consiste à s'assurer que la valeur est mise à jour dans les états pour chaque changement. Et j'ai ce pseudo submit pour gérer l'envoi. Passons maintenant à la version ici, si je rafraîchis, vous verrez le formulaire de base rendu deux fois, et cela est, bien sûr, dû au vous verrez le formulaire de base rendu deux fois, mode strict. D'accord ? Donc c'est tout à fait normal. Je vais zoomer un peu. OK. Maintenant, je vais venir taper quelque chose ici, donc je dirais que vous pouvez voir chaque fois que je tape, j'adore réagir. Chaque fois que je tape, le formulaire s'affiche à nouveau. Il s'est donc refait 14 fois au fur et à mesure que j'ai tapé 14 caractères. D'accord ? Si je tape un e-mail, il s'affichera à nouveau. Tu peux voir. Et ce n'est pas efficace en termes de performances. Si je le soumets, d'accord, je reçois un message d'erreur, mais laissez-moi le supprimer et le soumettre. Vous pouvez voir que les données sont soumises, mais après un long processus de rendu. Ce n'est donc pas optimisé pour les performances. Ce n'est pas bon. Il y a beaucoup de rendus qui se produisent, ce qui peut être évité. D'accord ? Maintenant, dans ce même exemple, nous pouvons utiliser formulaires React Hook et React Hook Form peut gérer cela manière très efficace et efficiente avec un minimum de code. Vous êtes donc en train d'écrire une telle quantité de code. Vous pouvez voir près de 50 lignes de code, mais cela peut être minimisé avec les formulaires React Hook Maintenant, ici, j'ai converti cet exemple en forme de crochet de réaction. J'utilise le formulaire React Hook ici, vous pouvez le voir, et très moins de code. Et ici, j'ai deux champs, nom et e-mail. J'enregistre ces deux champs et j'ai à nouveau un hook d'effet d'utilisation sans tableau de dépendances pour imprimer le rendu sous forme de crochet. J'ai également une fonction de soumission, qui est transmise de cette façon ici. Voyons comment fonctionne le rendu ici. Si je viens ici, vous pouvez voir React Hook Form rendu deux fois. Bien sûr, cela est dû au mode strict. Maintenant, si je tape, j'adore réagir. OK. Vous pouvez voir qu' aucun nouveau rendu n' est en cours. D'accord ? Vous pouvez également saisir un e-mail, mail.com, et vous pouvez envoyer les données Vous pouvez voir qu'aucun nouveau rendu n'a eu lieu. C'est donc beaucoup plus efficace. Le formulaire React ok minimise le rendu ici. Il ne restitue pas le composant, et c'est l'avantage de l'utilisation des formes React Hook. Maintenant, cette différence de rendu est très importante. Si vous créez de grands formulaires complexes, des formulaires d'intégration complexes ou des formulaires complexes dans votre candidature et que votre candidature est lourde de formulaires Cela aurait alors beaucoup d'importance à long terme , car si vous utilisez un formulaire de base, vous aurez tout d' abord beaucoup de code standard. Ce serait difficile à gérer. Il y a beaucoup de rerendu et les performances ne sont pas optimisées, n'est-ce pas ? Mais avec les formulaires React Hook, vous pouvez voir moins de code. D'accord, tu dois écrire moins de code. Une grande partie du code standard est réduite, et React Hook Form offre avantages en termes de performances en réduisant les rendus inutiles, ce qui le rend plus efficace pour la gestion des formulaires, en particulier dans votre cas d'utilisation où vous avez une application plus importante. accord ? J'espère donc que cette démonstration vous a été utile, et j'espère que cela vous a permis de mieux comprendre la différence et l' importance des formes basiques par rapport aux formes React. Et j'espère que vous comprendrez à quel point les formulaires React sont importants et qu'ils ajoutent de la valeur. 8. Réinitialiser et rafraîchir : maîtriser la gestion des états de formulaire: Il est donc temps de commencer à parler réinitialisation et de la manière dont vous pouvez ajouter une fonctionnalité de réinitialisation à l'aide des formulaires React Hook ? Maintenant, la réinitialisation est l'une des fonctionnalités que vous voudrez peut-être proposer ici. Donc, dans ce formulaire en particulier, vous voudrez peut-être avoir un bouton de réinitialisation. De plus, une fois les données soumises, vous souhaiterez peut-être réinitialiser le formulaire et effacer toutes les valeurs afin que l' utilisateur puisse commencer par une nouvelle soumission s'il le souhaite. C'est bon. Alors, comment ferais-tu ça ? Ainsi, avec React Hook form, c'est aussi simple que d' appeler une fonction. Les formulaires React Hook proposent donc cette fonction de réinitialisation que vous pouvez ajouter ici, d'accord ? Et tu peux t' en servir. C'est bon. Donc, lors de la soumission, nous enregistrerons les données. OK ? J'ai donc ce formulaire très simple, dont le nom est enregistré dans le formulaire de réaction avec cette validation. Vous avez un e-mail ici, qui effectue ces validations ici, puis vous avez également des erreurs que vous affichez, et vous avez un bouton qui est Soumettre Et vous gérez l'envoi de cette façon, vous enregistrez simplement les données. OK ? Maintenant, lors de la soumission, je souhaite également que les données soient réinitialisées, car ce qui se passe en ce moment, c'est si je soumets, si je dis A et si je dis A sur chmail.com, OK OK, donc je peux le dire et je vais dire ABC. Cela ne réinitialise pas le formulaire ici , vraiment, n'est-ce pas ? Donc, ce que vous pouvez faire ici, c'est que je réinitialiserais le formulaire. OK ? Donc, ce que je ferais, c'est d'ajouter d'abord une paire de presses bouclées OK ? C'est fait. Et puis ici, j'appellerais cette fonction de réinitialisation. Je dirais réinitialisation. Et je dirais que je vais l'appeler ainsi. OK. Et cela réinitialiserait le formulaire après la soumission. Donc, ce que vous pouvez faire ici, c'est, d'accord, je peux dire tester, et je peux dire tester sur mail.com Si je dis envoyer, cela efface toute la valeur et réinitialise le formulaire Vous pouvez voir que la soumission est terminée et que la valeur est effacée. OK ? Vous pouvez également ajouter un bouton. Ici, le bouton est ajouté, qui est utilisé pour soumettre le formulaire ici. OK. Ce que vous pouvez faire ici c'est créer un bouton de réinitialisation. Vous pouvez dire « réinitialiser » ici. Le type est un bouton, je vais donc le sélectionner. Je vais dire bouton. Et vous pouvez dire qu'en cliquant ici, cliquant, vous pouvez ajouter une fonction flèche et vous pouvez appeler la réinitialisation. Vous pouvez donc dire « réinitialiser » et vous pouvez l'appeler ici. OK, quelque chose comme ça. Il s'agit d'un bouton de réinitialisation. Maintenant, ce qui se passerait, c'est que si vous tapez quelque chose, OK. Oups, désolée. Donc, si vous tapez quelque chose, vous pouvez le réinitialiser, non ? Si vous tapez quelque chose ici, quoi que ce soit ici, vous voulez réinitialiser le formulaire dans son intégralité, vous avez cette partie de réinitialisation. OK ? C'est donc un avantage de la réinitialisation ici. C'est aussi simple que de faire un appel de fonction ici et d'effacer toutes les valeurs. Vous pouvez effectuer l'appel de fonction depuis votre fonction Jascript que vous êtes en train de définir, accord avec la fonction de soumission, ou vous pouvez même le faire en l'utilisant, sur ClickList now C'est bon. J'espère donc que cela vous sera utile et j' espère que vous en avez tiré des informations. 9. Retours personnalisés : créer des validations personnalisées dans React Forms: Donc, en ce moment, j'ai un formulaire qui utilise des formulaires React Hook, et j'ai quelques champs dans le formulaire, comme s'il s'agissait d'un formulaire. J'ai un nom, et j'ai aussi un e-mail ici. OK ? Maintenant, la validation que j'utilise ici est assez simple. Par exemple, j'ai besoin que le nom soit obligatoire, et la longueur minimale requise est de deux. Ici, l'e-mail doit être obligatoire, et c'est un modèle que je souhaite suivre pour savoir si l'e-mail est valide ou non. OK ? C'est donc une validation que j'ai déjà, d'accord ? Maintenant, les validations que j'ai sont des validations courantes et standard, n'est-ce pas ? Lorsque vous créez des formulaires, il existe des scénarios lesquels vous souhaitez intégrer une sorte de logique de validation personnalisée dans les champs de votre formulaire, adaptée à votre application. OK ? Maintenant, dans ce cas particulier, il existe une option appelée valider qui vous permet d'ajouter de telles vérifications personnalisées dans vos formulaires. Maintenant, par exemple, permettez-moi de vous donner un exemple ici. Supposons que je souhaite que les utilisateurs ayant le nom Edmin soumettent uniquement ce formulaire Maintenant, il s'agit d'une vérification personnalisée spécifique à mon application, et ce n'est pas quelque chose de courant ou de générique, n'est-ce pas ? Alors, comment ajouteriez-vous cela ici ? C'est donc là que les options de validation entrent en jeu. OK. L'option de validation prend donc une fonction qui renvoie vrai et renvoie un message d'erreur si la validation échoue. OK ? Le retour est donc vrai si la validation est réussie. C'est bon. Voyons maintenant cela en action. Disons que dans ce formulaire en particulier, je vais prendre le même exemple où un salaire permet de vérifier si l'utilisateur ou l'utilisateur s'appelle Edmin. Maintenant, pour utiliser l'option de validation ici, vous venez saisir, vous dites ici et vous pouvez dire valider, valider comme option ici. Vous pouvez avoir une paire clé-valeur, et vous pouvez mentionner le nom de la fonction ici. OK ? Quel est donc le nom de la fonction ? OK ? Nous pouvons donc créer une fonction ici. D'accord, je peux dire const validate name ici, et ce gain a une valeur comme paramètre Vous pouvez avoir quelque chose comme ça, puis vous pouvez dire si c'est une valeur. OK ? Vous pouvez donc dire si la valeur est égale à o admin. D'accord, ou si vous dites si la valeur n' est pas égale à Admin ici. OK. Oups, si la valeur n'est pas égale à Admin, alors ce que vous faites est de revenir Seul l'administrateur est autorisé. Seul l'administrateur est autorisé, quelque chose comme ça. OK. Selon vos besoins, vous pouvez envoyer le type de messages ou vous pouvez créer les messages en fonction de vos besoins, mais je vais l'enregistrer pour le créer maintenant. Maintenant, vous venez ici et vous dites nom valide, quelque chose comme ça. Sauvegardez ceci. Tu viens ici et laisse-nous te rafraîchir. Si vous venez ici et que vous tapez AD, je ne tape pas Admin. OK, et j'ai un e-mail G valide. OK. Email valide ici. Si je soumets, vous verrez que seul l' administrateur est autorisé. OK. Si je dis administrateur ici, administrateur. Oups, administrateur et si je dis « soumettre », vous verrez que l'erreur a disparu et vous pourrez soumettre le formulaire. D'accord ? Vous pouvez également avoir la logique de dire que l'administrateur n'est pas autorisé, d'accord ? Vous devez donc inverser la situation. L'administrateur n'est pas autorisé ici. OK ? Et vous pouvez inverser la situation, quelque chose comme ça. S'il est égal à Admin, n' autorisez pas Admin. OK ? Donc, si je dis Admin ici, OK. C'est bon. L'administrateur n'est pas autorisé. Tu peux voir. C'est bon. Donc c'est comme ça que ça marche, non ? Et j'espère que vous avez une idée de la façon dont cela fonctionne. Vous pouvez même le raccourcir comme si vous n'aviez pas besoin cette fonction distincte ici pour y être. OK. Donc, au lieu de cela, au lieu d'écrire une fonction séparée, je vais faire au lieu d'appeler cette fonction ici, d'accord, je peux dire ici, d'accord, je peux écrire une fonction ici elle-même de manière abrégée J'ai cette valeur, d'accord. Je vais utiliser Arrow. Je dirais que si la valeur n'est pas égale à celle d'Admin ici, d'accord ? Dans ce cas, vous écrivez « Admin is not allowed ». OK, quelque chose comme ça. Cela fonctionnera donc de la même manière. C'est bon. Vous pouvez voir que l'administrateur n'est pas autorisé, n'est-ce pas ? Cela deviendra donc vrai. Dans le cas contraire, il renvoie ce message. OK ? C'est ainsi que cela fonctionne ici et vous pouvez vous débarrasser de cette fonction si vous en avez besoin. OK ? Je vais juste le commenter. Si tu viens ici, d'accord ? Vous pouvez dire administrateur ici et essayer de soumettre. Vous pouvez voir que l'administrateur n' est pas autorisé. C'est bon. Et oui, cela fonctionne parfaitement. D'accord ? Donc ça marche, d'accord ? Et là, je vous avais donné un exemple. OK ? Donc voilà ce qui se passe, c'est là que nous transmettons le message, d'accord ? Maintenant, si le message d'erreur à points n'est pas trouvé, vous affichez ce message personnalisé. OK ? Ce que vous pouvez faire, c'est que vous pouvez avoir plusieurs règles de validation dans cette seule option. Par exemple, vous vérifiez ici si le nom d'utilisateur est valide ou s'il est admin ou non, ou si le nom est valide ou non. Désolé, le nom n' est pas valide ou non. Vous êtes en train de vérifier si le nom est admin ou non, non ? Si le nom n'est pas admin admin, sur cette base que vous affichez ce message, n'est-ce pas ? Donc ce que tu peux faire, c'est en avoir plus ici, d'accord, pas un seul. OK ? Donc, ce que je peux faire, c'est ajouter que cela peut être une sorte d'objet ici que vous pourriez ajouter, accord, et quelque chose comme ça. OK. Et tu es ici. Donc ça peut être nommé, d'accord ? Vous pouvez dire « pas administrateur » OK. Comme ça. Et c'est un contrôle. OK. Disons que je souhaite ajouter un autre chèque, non ? Je veux ajouter un autre chèque, n' est pas un numéro, d'accord ? Je ne veux donc pas que les utilisateurs entrent un numéro dans le champ. Donc, ce que je peux faire, c'est redire valeur. Qu'est-ce qu'un chèque ? Je vais faire comme ça. Je dirais que c'est N N, c'est N ici. OK ? Et je vais transmettre la valeur. OK. Et je vais avoir ce message ici. Le nom ne peut pas être un numéro. OK ? Et je terminerai par une virgule s'il le faut OK ? Vous pouvez donc le terminer par une virgule ou ce n'est pas nécessaire, en fait, c'est le dernier Maintenant, je tiens également à vous dire que j'espère que vous êtes au courant de cette façon abrégée de faire les choses Nous utilisons donc l' expression conditionnelle ici, le conditionnel ou, et vous pouvez voir ici si la valeur n'est pas égale à admin, d' accord, vérifie si la valeur n'est pas égale à admin. OK ? Et si la condition est vraie, l'expression renvoie true. Cette expression deviendrait donc vraie. Et si c'est faux, cela sera renvoyé. OK. Donc, de la même manière, cela vérifie si c'est vrai, alors cela serait vrai serait renvoyé, et si faux, alors cela serait renvoyé. Donc ici, vous pouvez tester cela ici en saisissant des chiffres ici. Vous pouvez voir que le nom est obligatoire et doit comporter au moins deux caractères, d'accord ? Attends une minute. Je peux réellement taper maintenant et je peux soumettre. OK. Cela me donne une erreur ici, d'accord ? Et laissez-moi vérifier quelle est l'erreur pour qu'elle soit simple. J'ai fait une faute de frappe ici. Le dernier N est en majuscule ici, quelque chose comme ça. Oups. Désolé. Donc le dernier N est en majuscules, quelque chose comme ça, d'accord ? Enregistrez ceci et vous viendrez ici pour vous rafraîchir. OK, et tapez trois, quatre, vous pouvez voir, le nom ne peut pas être un chiffre. OK ? Tu peux en ajouter une autre, d'accord ? Vous pouvez en ajouter une autre si vous le souhaitez. Vous pouvez en ajouter autant que vous le souhaitez. OK ? Ce sont toutes des règles de validation personnalisées. Si la règle est complexe et qu'elle ne convient pas ici, vous pouvez ajouter une fonction distincte qui vérifie cela, quelque chose comme ceci, et vous pouvez lier cette fonction ici. OK. Donc tout cela est possible ici, d'accord. Mais en gros, je tiens à souligner que c'est une façon d'ajouter une logique de validation personnalisée, d'accord ? Et l'option de validation vous permet d' effectuer des validations personnalisées détaillées au-delà de simples vérifications Et cette fonctionnalité est utile dans les scénarios où les entrées nécessitent des formats ou des conditions spécifiques qui ne sont pas couverts par des éléments génériques, comme longueur maximale requise qui existe par défaut dans les formulaires React Hook. OK ? Ainsi, en dehors de ceux par défaut, React Hook Forms vous offre une grande flexibilité pour créer également une grande flexibilité pour créer vos propres logiques personnalisées et cela de manière plus propre et soignée C'est bon. J'espère que cela utile et j'espère que vous serez en mesure de suivre. 10. Au-delà des bases : mettre en œuvre des validations personnalisées sophistiquées: Nous allons donc parler un peu plus l'option de validation et apprendre comment ajouter des validations personnalisées un peu plus complexes dans votre application, n'est-ce pas ? Jusqu'à présent, ce que nous avons vu, c'est qu'avec l'option de validation, vous pouvez réellement ajouter ce type de validations, d'accord ? Vous pouvez avoir des validations personnalisées adaptées à votre application ou à votre domaine, n'est-ce pas ? Nous vérifions donc ici si l'utilisateur est administrateur ou non, et ici nous vérifions si l'utilisateur saisit un numéro ou non dans le nom. Les deux ne devraient pas être autorisés et ils devraient être manipulés de manière appropriée en fonction condition que vous définissez, d'accord ? Nous avons donc ces deux vérifications d' état ici. Il y aura des scénarios dans lesquels vous souhaiterez peut-être en ajouter d'autres. Vous pouvez donc ajouter plus de choses ici en ajoutant une virgule à la fin et vous pouvez continuer à ajouter d'autres entrées ici dans l'option de validation Supposons maintenant que vous ayez un scénario dans lequel vous souhaitez effectuer une validation asynchrone. Maintenant, que signifie cette validation asynchrone ? La validation asynchrone signifie donc que vous voulez vérifier auprès du backend, n'est-ce pas ? Vous avez peut-être un serveur principal, vous souhaitez vérifier quelque chose dans le serveur principal, puis afficher le message d'erreur de validation à l'utilisateur. Comment ferais-tu ça ? Cela est donc possible à l' aide de l'option de validation elle-même, comme l'option de validation elle-même. OK ? Disons donc que dans le scénario, nous avons le nom et l'adresse e-mail. Disons que je veux vérifier nom, disons que ce n'est pas un nom, disons que c'est le nom d'utilisateur et que je veux vérifier et valider cela avec le backend, que le nom d'utilisateur existe ou non. OK. Alors, comment pourrais-je m'y prendre ? OK ? Donc, ce que vous pouvez faire, c'est avoir une fonction de vérification ou une fonction asynchrone ici. Je dirais qu'une vérification asynchrone est ce que je dirais, d'accord ? Et en utilisant cela, vous pouvez effectuer une validation asynchrone, Alors laisse-moi le faire. OK. Donc ce que je ferais, c'est ici, je viendrais ici. OK, je dirais une virgule, je dirais que valider, et valider est déjà ajouté, donc je dirais vérifier le nom d'utilisateur OK. Et ici, je dirais valeur ou valeur ici. OK. Et j'aurais une logique D. OK ? Maintenant, la logique va se présenter comme suit ici. OK. Mais cela fait maintenant une vérification avec le backend, non ? Nous devrons donc marquer cela comme étant depuis. OK. Maintenant, je vais vous montrer comment vous pouvez le faire. Disons que j'ai const, d' accord, j'ai cette valeur Pollan qui existe, que j'obtiens en vérifiant si nom d'utilisateur fonctionne ici . OK ? Vérifiez s'il s'agit d'un nom d'utilisateur, et il reçoit une valeur en entrée. Maintenant, qu'est-ce que le nom d'utilisateur check if ? OK ? Permettez-moi donc d'ajouter le nom d'utilisateur check iff ici. OK ? Maintenant, ici, je peux dire fonction. Vérifiez que j'utilise un nom. OK. Quel est le paramètre ? Il accepte ? Il accepte le paramètre , donc je ne veux pas transmettre de paramètres pour le moment. D'accord, je vais le définir à l'aide de la fonction flèche, donc je dirais que c'est égal à, d'accord. Et attendez une minute. J'ai truqué la syntaxe. Je vais donc dire une synchronisation. Vérifiez si vous êtes désolé, pas un lavabo. J'ai truqué la syntaxe. Permettez-moi de le supprimer. OK. Ce sera donc constant. Vérifiez si vous utilisez un nom. OK. Et je vais appeler cela exister parce que vérifier si le nom d'utilisateur existe sonne mieux. OK ? Je vais donc simplement le remplacer ici, vérifier si le nom d'utilisateur existe. OK. Et ici, je vais marquer cela comme une fonction asynchrone, d'accord ? Et je vais transmettre le nom d'utilisateur, comme ça. OK ? Comme la valeur est transmise ici, ce n'est rien d' autre que le nom d'utilisateur. Et j'ai défini le chèque ici, d'accord ? Maintenant, ce que je peux faire ici, c'est faire une simulation de vérification sur le back-end Je peux dire que les const existent. OK. Et ici, vous pourriez avoir un appel EPI que vous pourriez faire, d'accord ? Donc, ici, vous avez peut-être le code de l'appel EPI, et cela pourrait renvoyer un résultat booléen Ou vous pourriez le traiter et obtenir la valeur booléenne, n'est-ce pas ? Donc, c'est à vous de décider. Mais ce que je peux faire ici, c'est que vous le pouvez réellement , donc ce que je vais faire ici, c'est simuler une vérification du backend. Je peux dire « attendez ». OK, et je peux te faire une nouvelle promesse ici, d'accord ? Et je dirais « Résolvez ici ». OK. Je ne fais donc qu'une promesse. Je dirais définir le délai d'attente, et je dirais résoudre des milliers Je fais un délai de 1 000 millisecondes ici, pour simuler Et je vais dire « retour ». OK, je vais dire return, et vous pouvez renvoyer une valeur booléenne ici. OK ? Maintenant, quelle valeur booléenne pouvez-vous renvoyer ? Donc, ce que je peux faire, c'est que je peux avoir une liste statique ici. OK, je vais donc avoir une liste statique des noms d'utilisateur existants. OK ? C'est une liste statique, et c'est une RA, je dirais administrateur, je dirais utilisateur, un, deux, trois, et je peux dire que vous pouvez en ajouter une de plus. Je vais sucer, quelque chose comme ça. Maintenant, vous pouvez dire retour, et je peux vérifier s'il existe. OK ? Et désolé, je peux renvoyer ce que je vais retourner, je peux dire un nom d'utilisateur existant. OK, le point inclut, je vais dire le nom d'utilisateur ici. C'est donc un nom d'utilisateur que je transmets. OK ? Donc, ce que cela fait, c'est que j'ai une liste statique de noms d'utilisateur Bien sûr, ce ne sera pas le cas dans votre cas car vous pourriez effectuer un appel d'API principal ici , d'accord ? Donc, ce que je fais, c'est que j'ai une liste de départ de noms d'utilisateur, d'accord, et je vérifie le nom d'utilisateur, comme si le nom d' utilisateur saisi existait dans le nom d'utilisateur existant S'il existe, je renvoie cette valeur de chèque. C'est un résultat booléen que je renvoie, d'accord ? Et avant de faire cette vérification, je simule ici un délai de 1 000 millisecondes . C'est bon. C'est donc comme un appel d' API simulé ici, n'est-ce pas ? Et ici, comme c'est un lavabo, je conseille d'attendre parce que cela revient à une promesse ici. Et comme il s'agit d'une attente, cela devient un évier. Hein ? J'espère donc que cela a du sens maintenant par rapport à ce qui se passe ici, d'accord ? Et ici, je peux dire return not equal to exist ou vous pouvez dire nom d'utilisateur déjà utilisé. OK ? Donc le nom d'utilisateur est déjà pris, quelque chose comme ça. C'est bon. Vous avez donc ce genre de message qui est envoyé. Sauvegardez ceci. OK. Voyons comment cela fonctionne. OK ? Je vais donc faire une mise à jour. Donc, le nom d'utilisateur que nous avons est John, l'un des noms d'utilisateur, je peux le faire John. Je peux dire « Soumettre ». Vous pouvez voir au bout d'un moment que vous pourriez voir le nom d'utilisateur déjà utilisé. Je pourrais également augmenter le délai. OK ? C'est possible. Je peux dire John One et moi au rate gmail.com. Donc, comme ce nom d'utilisateur est unique, il fonctionnera. OK, vous pouvez voir qu'il a été soumis. OK. C'est ainsi que fonctionne la validation asynchrone. Et il ne s'agit pas simplement d'une validation statique, mais si vous souhaitez effectuer des vérifications ou des validations avec le backend, vous pouvez absolument le faire, n'est-ce Et maintenant, vous pouvez imaginer à quel point cela peut être puissant. OK ? Donc, si vous travaillez sur un vrai projet, si vous avez des EPI en cours d'exécution, vous devez valider quelque chose en appelant un EPI, vous pouvez absolument le faire, n' Vous pouvez même faire des validations dépendantes, d'accord ? Donc, les validations dépendantes, comme je vais vous le dire, supposons que vous ayez un champ de mot de passe et un champ de mot de passe confirmé, n'est-ce pas ? Maintenant, ce que vous devez faire, c'est que lorsqu'un utilisateur saisit le mot de passe, vous devez le vérifier dans le champ autre mot de passe, et s'il est incorrect, vous pouvez déclencher un message indiquant que le mot de passe ne correspond pas. Tu devrais peut-être le faire, non ? Cela pourrait donc être un autre cas d'utilisation ici. Donc, ce que je ferais, c'est ici, j'ai une étiquette. Il s'agit de la deuxième étiquette après cette étiquette et après ce message d'erreur ici. OK ? Ce que je peux faire, c'est ici, je peux ajouter une étiquette. OK, je peux dire étiquette, quelque chose comme ça. OK. Et je peux dire mot de passe, comme ça, et ici je peux dire saisir un mot de passe ici. OK. Et l'entrée peut être de type mot de passe. OK, tapez le mot de passe, et ici, je dirais, OK, ici. Je dirais : enregistrez-vous, enregistrez-le. OK ? Et comment l' enregistreriez-vous ? Vous devez donc l'enregistrer comme mot de passe. Je vais donc garder le petit mot de passe B ici. OK. Et je dirais que c'est nécessaire, cela doit être exigé. OK ? Je peux transmettre tout cela, le champ obligatoire et la validation requise, mais je ne le ferai pas. OK ? Je vais juste garder les choses simples. OK ? C'est donc chose faite. C'est bon. Ou si tu veux, je vais juste obtenir la validation d'ici. OK. Donc oui, c'est la validation que je vais ajouter ici. Donc oui. C'est ça. OK. Et cela ferme le formulaire requis ici, enregistré. Le registre est fermé. OK, c'est fermé, le registre est fermé, et puis vous avez des bretelles bouclées fermées D'accord ? Et ça y est. Nous constatons une erreur ici. Quel est le but de l'erreur ? Laisse-moi voir. Je n'ai donc pas besoin de cette option validée, je vais donc m'en débarrasser. OK, je vais garder les choses simples. OK. C'est tout ce dont j'ai besoin, non ? Donc, à peu près. OK. Et maintenant, ce que je peux faire, c'est dupliquer ce champ. OK. Donc, ce champ entier le duplique, et vous pouvez avoir un mot de passe de confirmation ici, non ? C'est confirmé. OK. Et au lieu de taper un mot de passe, c' est un mot de passe de type. Au lieu du mot de passe ici, je peux avoir une confirmation du mot de passe. OK, quelque chose comme ça. OK. Et vous avez une longueur minimale ici. OK, je vais me débarrasser de cette virgule. OK, longueur minimale. Maintenant, longueur minimale après longueur minimale, ce que vous pouvez faire est ici, vous pouvez ajouter une option validée, donc vous pouvez dire valider. Maintenant, ce champ de mot de passe doit correspondre au mot de passe de confirmation qui doit toujours correspondre au mot de passe. Vous pouvez donc dire valeur, d'accord, flèche. Et vous pouvez dire que la valeur est égale à watch et oups. La montre n'est pas importée, donc je dois importer, regarder, regarder, regarder, je dis, euh, cela ne m'autorise pas à regarder et je vais dire mot de passe. Donc ça regarde le mot de passe, et il renvoie sa valeur, d'accord ? Et si c'est vrai, c'est bon. Si ce n'est pas le cas, vous envoyez un message indiquant mots de passe ne correspondent pas, n'est-ce pas ? Les mots de passe ne correspondent pas, quelque chose comme ça, non ? C'est chose faite. Nous devons faire attention. OK, donc la montre n'est pas encore ajoutée. Sinon, nous aurons un message d'erreur. C'est ce que j'ai fait et tu peux venir ici. OK. La forme n'a pas l'air géniale. La forme n'est pas très belle. Mais permettez-moi d'ajouter quelques tags BR et les aligner en un seul pro. Donc, après chaque étiquette, j' ajouterai le tag BR. D'accord ? Ça devrait aller pour le moment, on est en train d'apprendre, non ? Donc oui, le formulaire est prêt. OK. Vous pouvez voir si je soumets, vous verrez toutes les validations se déclencher, n'est-ce pas ? OK. Et tu peux dire test. Vous pouvez dire A, au tarif gmail.com. Vous pouvez voir les mots de passe, un, deux, trois, quatre, OK, un, deux, trois, quatre, cinq, six. OK, j'en ai inscrit six. Et ici, je vais entrer une autre valeur. D'accord ? Et si je dis « Soumettre », d'accord ? Voyons ce qui va se passer. L'envoi n'a rien déclenché. OK ? C'est bizarre. C'est bon. Qu'est-ce qui ne va pas ? Laisse-moi voir. La validation ne se déclenche donc pas, peut-être parce que je n'ai pas ajouté les messages d'erreur de validation. OK, j'aurais dû l'ajouter. Donc, ce que je vais faire, c'est qu'après l'étiquette, vous affichez les messages d'erreur, c'est vrai. Donc, après l'étiquette, j'ajouterais les messages de validation. Donc erreurs, triez, confirmez le mot de passe. OK. Il s'agit d'un nom de champ. OK. Je vais dire confirmer le mot de passe, quelque chose comme ça. OK. Et ici aussi, juste après l'étiquette, j'ajouterai les messages d'erreur. Vous devriez donc voir le message d'erreur maintenant que les mots de passe ne correspondent pas. Vous pouvez voir comment cela fonctionne. Alors maintenant, si je change cela en un, deux, trois, quatre, cinq, d'accord. OK. Laisse-moi voir. Cinq. OK. Ai-je tapé un, deux, trois, quatre, cinq, un, deux, trois. OK. Alors laissez-moi réessayer, un, deux, trois, quatre, cinq. OK, ici, un, deux, trois, quatre, cinq. Je soumets. OK, vous pouvez voir le message d'erreur du mot de passe n' est pas déclenché. D'accord ? Donc ça marche bien, non ? C'est ainsi que vous pouvez comparer, regarder ou créer des validations qui dépendent d'un autre champ Donc, ici, la validation du champ de confirmation du mot passe dépend du champ du mot de passe, n'est-ce pas ? C'est ce que l'on appelle des validations dépendantes, n' est-ce pas C'est donc à peu près tout. Et maintenant, il y a encore une chose que je veux te montrer. Alors maintenant, ce qui se passe, c'est que si vous soumettez à ce moment-là, la validation est déclenchée, n'est-ce pas ? Il y aura des scénarios dans lesquels vous souhaiterez déclencher la validation lors d'une modification ou lorsque l'élément est saisi, n'est-ce pas ? Lorsque l'utilisateur remplit le formulaire. Cela devrait donc être en temps réel. Vous pouvez le faire en temps réel avec un petit changement. Donc ce que tu peux faire, c'est venir ici. Et lorsque vous créez une instance de formulaire d'utilisation ici, d' accord, ici dans le formulaire d'utilisation, vous pouvez ajouter un, vous pouvez ajouter un CO prese, ok et ici vous pouvez spécifier le mode et vous pouvez dire « changement en cours accord, ici dans le formulaire d'utilisation, vous pouvez ajouter un, vous pouvez ajouter un CO prese, ok et ici vous pouvez spécifier le mode et vous pouvez dire « changement en Vous pouvez voir sur bl qu'il y avait pas mal d'options, d'accord ? Quelques options sur le flou en cas de modification lors de la soumission, je dirais en cas de modification Je vais enregistrer ça et maintenant voir la magie, d'accord. J'ai donc ajouté ici. Vous pouvez voir que le nom est obligatoire et doit comporter au moins deux caractères. Tu peux voir. OK. Entrez le nom, OK, la validation est terminée R, au tarif gmail.com. OK. Mot de passe. OK, un, deux, trois, quatre, cinq. OK, un, deux, trois, quatre, cinq. OK. Tu peux voir. Six. OK. Vous pouvez donc voir comment le formulaire fonctionne en temps réel maintenant, et tout cela grâce à une seule modification. J'ai ajouté cette paire clé-valeur ici en tant qu' objet lors de la création du formulaire, n'est-ce pas ? J'espère donc qu'il y a eu de bons enseignements ici sur la gestion des formulaires avec React Hook Form, n'est-ce pas ? J'espère que cela vous a été utile et que cela vous donne la possibilité de créer vos propres formulaires manière très robuste avec des performances efficaces et de nombreuses fonctionnalités en réduisant beaucoup de code standard , n'est-ce pas ? Voici donc les formulaires React Hook pour vous, et les validations personnalisées pour vous J'espère que cela vous a été très utile. 11. Conclusion du cours: Et cela nous amène à la fin de ce voyage transformateur dans le monde des formes React Hook Nous avons étudié en profondeur comment React Hook Form peut changer la donne pour gestion des formulaires dans les applications React Nous avons exploré de nombreuses choses en matière de gestion des formulaires dans React. Nous avons appris comment résoudre les problèmes courants et nous avons découvert la puissance des formulaires React Hook. Donc, juste pour vous donner un résumé de ce que nous avons appris, nous avons appris comment vous pouvez observer les valeurs changer de manière dynamique, implémenter des validations, améliorer les performances de vos applications React Qui ont des formulaires, bien sûr. Et nous avons également comparé formulaires de base avec React Hook Form afin que vous compreniez de base en quoi React Hook Form peut changer la donne. J'espère donc que ce cours vous a donné une perspective différente de la gestion des formulaires dans le monde de React. Mais n'oubliez pas que notre exploration ne s'arrête pas là. La puissance de React Hook Forms réside dans sa flexibilité et capacité à s'adapter à un large éventail de tâches de gestion de formulaires. Et je vous encourage à continuer d'expérimenter, explorer et de repousser les limites du possible avec cet outil dans le cadre de vos projets Je suis impatient de voir comment vous allez utiliser les formulaires React Hook dans votre projet, car cela va dynamiser votre processus de gestion des formulaires Et n'oubliez pas que l'innovation et l'efficacité reposent sur l'adoption de nouveaux outils et techniques, et React Hook Form est désormais un élément essentiel de votre kit d'outils React Merci d'avoir participé à ce cours et merci d'être un groupe d'apprenants si engagés J'espère que ce cours vous a non seulement permis d'acquérir de nouvelles compétences, mais qu'il vous a également incité à envisager la gestion des formulaires sous un angle complètement différent. Avec ce cours, vous trouverez un projet de classe que vous pouvez compléter et soumettre dans la section projet. Bon apprentissage, je vous souhaite tout le meilleur.