Fermer

octobre 28, 2020

Comment créer des formulaires de réaction avec une excellente expérience utilisateur


En savoir plus sur la création de formulaires dans React offrant une très bonne expérience utilisateur avec KendoReact Form.

Les formulaires sont présents partout dans les applications modernes, que vous construisiez une nouvelle boutique en ligne ou que vous créiez un formulaire d'inscription à la newsletter , vous aurez certainement besoin de créer et de gérer des formulaires.

Les formulaires collectent des informations. C'est la raison principale pour laquelle ils sont si importants et pourquoi nous devons nous en préoccuper profondément. Les formulaires sont un outil de conversion clé et ils auront un impact énorme sur votre expérience utilisateur finale. Avoir la bonne stratégie dans votre formulaire peut accroître le succès des clients.

Si un utilisateur de votre site Web a commencé à remplir votre formulaire, vous avez probablement déjà converti cet utilisateur. Demander à un utilisateur de saisir des données dans vos formulaires nécessite de la confiance, et si votre formulaire ne fonctionne pas correctement, vous risquez de perdre la confiance de votre utilisateur et de l'utilisateur lui-même.

Surtout dans React, les formulaires ont toujours été difficiles et mystérieux partie des applications. Il y a tellement d'options, d'interactions et d'approches différentes qui peuvent être implémentées sous des formes que parfois nous faisons des erreurs stupides en les construisant.

Donc, dans cet article, nous allons apprendre comment nous pouvons utiliser le fantastique KendoReact Form bibliothèque pour créer de superbes formulaires dans React.

KendoReact

KendoReact Form est un petit et puissant package pour la gestion de l'état des formulaires dans les applications React sans aucune dépendance. Cela nous facilite la vie en gérant tous nos états de formulaire et en nous permettant de gérer quelques fonctionnalités dans nos formulaires, telles que les composants personnalisés, la configuration avancée, la validation, etc.

Avec la sortie de KendoReact 4.0 pour utiliser les packages d'interface utilisateur, nous devons télécharger notre clé de licence et la mettre à la racine de notre projet.

Maintenant, nous devons installer le @ progress / kendo- licence comme dépendance dans notre projet:

 yarn add @ progress / kendo-licensing

Il ne nous reste plus qu'à exécuter la commande suivante pour activer notre licence:

 yarn run kendo-ui-license activate

Nous avons maintenant notre clé de licence activée avec succès. Pour en savoir plus, il suffit de cliquez ici .

Commençons par l'installer avec la commande suivante:

 yarn add @ progress / kendo-react-form

Lorsque nous travaillons avec le package KendoReact Form, nous allons travailler avec trois composants principaux: Form FormElement et Field .

Afin de avoir une meilleure interface utilisateur sous notre forme, nous allons installer quelques paquets supplémentaires:

 yarn add @ progress / kendo-drawing @ progress / kendo-react-buttons @ progress / kendo-react-inputs @ progress / kendo- react-intl @ progress / kendo-theme-default @ progress / kendo-react-labels @ progress / kendo-react-common

Formulaires avec KendoReact

Nous allons créer un formulaire de paiement en utilisant KendoReact Form et voir à quel point il est facile d'implémenter quelques éléments tels que des composants personnalisés, la validation, etc.

Premièrement, nous allons importer quelques éléments dans notre fichier principal:

 import  React  from   'react' ; 
 import   { Form  Field  FormElement }   from   "@ progress / kendo-react-form" ; 
 import   { Input  Case à cocher }   de   '@ progress / kendo-react-inputs' ; 
 import   { Button }   from   ] '@ progress / kendo-react-buttons' ; 
 import   '@ progress / kendo-theme-default / dist / all.css' ; 

La première chose que nous allons faire est de créer un composant personnalisé en utilisant le composant Input de KendoReact.

Custom Components

Créons notre fichier personnalisé Input . Nous rendrons notre code plus propre et facile à intégrer à d'autres choses telles que la validation de champ à l'avenir. Créons un nouveau fichier appelé Input et ajoutons le code suivant:

 import  React  from   'react' ; 
 import   { Entrez  comme  KendoReactInput }   de   '@ progress / kendo-react-inputs' ; 
 import   { Label  Erreur }   de   '@ progress / kendo-react-labels' ; 
 const   Input   =   ( {
nom 
étiquette 
valeur 
onChange 
onBlur 
visité 
validationMessage 
 ...  accessoires
} )   =>   {
 const  editorId  =  name ; 
 return   (
 < div className  =  "k-form-field" > 
 < Label editorId  =  { editorId }  >  { label }  < /  Label > 
 < KendoReactInput
id  =  { editorId } 
className  =  "k-textbox" 
valeur  =  { valeur } 
onChange  =  { onChange } 
onBlur  =  { onBlur } 
 { ...  props } 
 / > 
 {

visité le  &&  validationMessage  && 
 ( < Error >  { validationMessage }  < /  Erreur > ) 
} 
 < /  div > 
) ; } 
 export   par défaut  Entrée ; 

L'une des plus grandes erreurs UX que nous pouvons commettre lors de la conception de formulaires est de ne pas transmettre un attribut d'étiquette à notre composant d'entrée. Katie Sherwin a écrit un article intitulé « Les espaces réservés dans les champs de formulaire sont nuisibles », dans lequel elle explique que les entrées qui ont des espaces réservés remplaçant les étiquettes peuvent être très nuisibles à l'accessibilité et avoir parfois de nombreuses conséquences négatives .

Le composant Input de KendoReact Form prend en charge une étiquette et aussi de nombreux accessoires liés à l'accessibilité.

Maintenant que nous avons notre Input composant personnalisé, nous allons également créer un composant personnalisé Checkbox . Créons un nouveau fichier appelé Case à cocher et mettons le code suivant à l'intérieur:

 import  React  from   'react' ; 
 import   { Case à cocher  comme  KendoReactCheckbox }   from   '@ progress / kendo-react-inputs' ; 
 const   Checkbox   =   ( { étiquette  valeur  onChange  visité  error } [19659025])   =>   (
 < div > 
 < KendoReactCheckbox label  =  { label }  value  =  { value }  onChange  =  { onChange }   / > 
 <  /  div > 
) ; 
 export   default  Case à cocher

Maintenant que nous avons nos deux composants personnalisés, nous pouvons les importer dans notre fichier principal et commencer à créer notre formulaire. Voici à quoi ressemblera notre formulaire initial:

 import  React  from   'react' ; 
 import   { Form  Field  FormElement }   from   '@ progress / kendo-react-form' ; 
 import   { Button } [19659028] de   '@ progress / kendo-react-buttons' ; 
 import   '@ progress / kendo-theme-default / dist / all.css' ; 
 import  Input  from   "./ Input" ; 
 import  Checkbox  from   "./ Checkbox" ; 
 const [19659061] App   =   ()   =>   {
 const   handleSubmit   =   ( data ) [19659062] =>   {
console .  log  ( data ) ; 
} 

 return   (
 < Form
onSubmit  =  { handleSubmit } 
render  =  { ( { allowSubmit } )   =>   (
 < FormElement > 
 < Champ
name  =  { 'firstName' } 
composant  =  { Entrée } 
label  =  { 'Prénom' } 
 / > 

 < Champ
name  =  { 'lastName' } 
composant  =  { Entrée } 
label  =  { 'Last name' } 
 / > 

 < Field
name  =  { 'cardNumber' } 
composant  =  { Entrée } 
label  =  { 'Numéro de carte' } 
 / > 

 < Champ
name  =  { 'expiryDate' } 
composant  =  { Entrée } 
label  =  { 'Date d'expiration' } 
 / > 

 < Field
name  =  { 'cvv' } 
composant  =  { Entrée } 
label  =  { 'CVV' } 
 / > 

 < Field
name  =  { "email" } 
type  =  { "email" } 
composant  =  { Entrée } 
label  =  { "Email" } 
 / > 

 < Field
name  =  { "Remember" } 
composant  =  { Case à cocher } 
label  =  { "Remember info" } 
 / > 

 < Button
type  =  "soumettre" 
disabled  =  {!  allowSubmit } 
primaire
> 
Soumettre
 < /  Button > 

 < /  FormElement > 
) } 
 / > [19659087]) ; 
} 
 export   default  App ; 

Validation

La plupart du temps, les choses ne se passent pas comme prévu dans les formulaires. L'utilisateur peut oublier de remplir certains champs ou peut avoir rempli des informations erronées. Nous devrions trouver un moyen d'afficher et de montrer l'erreur d'une manière simple, claire et intuitive à l'utilisateur.

L'expérience la plus frustrante que votre utilisateur puisse avoir dans un formulaire est de ne pas savoir exactement quelle est l'erreur.

Selon Rachel Krause nous devrions signaler les erreurs dans les formulaires en suivant trois principes simples:

  1. Le message d'erreur doit être facile à remarquer et à comprendre.
  2. Le (s) champ (s) en erreur devrait être facile à localiser.
  3. Les utilisateurs ne devraient pas avoir à mémoriser les instructions pour corriger l'erreur.

KendoReact Form a une très belle méthode de gestion de la validation dans les formulaires. Le composant Field a un accessoire appelé validator auquel nous pouvons passer une fonction synchrone qui renvoie une valeur booléenne.

Le prop validator est responsable du renvoi l'erreur pour nous, afin que nous puissions savoir quel champ a été rempli par l'utilisateur.

Créons un fichier appelé validate et à l'intérieur de ce fichier, nous allons créer deux fonctions simples. Une fonction s'appellera validationEmail et elle sera utilisée pour valider notre champ de messagerie. L'autre fonction va s'appeler validationField et elle va valider nos autres champs.

 const  emailRegex  =   new   RegExp  ( ] /  S + @  S + .  S + / ) ; 
 export   const   validationEmail   =  value  => 
emailRegex .  test  ( value )  ?   ""  :   "Veuillez saisir une adresse e-mail valide." ; [19659026] export   const   validationField   =  value  =>  !  value ?   "Veuillez saisir une valeur"  : [19659024] "" ; 

Importons maintenant nos fonctions validationEmail et validationField dans notre fichier principal. Dans le champ email nous allons passer la fonction validationEmail dans le validator prop comme ceci:

 < Field
name  =  { "email" } 
type  =  { "email" } 
composant  =  { Entrée } 
label  =  { "E-mail" } 
placeholder  =  "Adresse e-mail" 
validator  =  { validationEmail } 
 / > 

Pour les autres champs de notre formulaire, nous allons passer la fonction validationField dans le validator prop, comme ceci:

 < Field
name  =  "firstName" 
composant  =  { Entrée } 
label  =  "Prénom" 
placeholder  =  "Entrez votre prénom" 
validator  =  { validationField } 
 / > 

 < Field
name  =  "lastName" 
composant  =  { Entrée } 
label  =  "Nom" 
placeholder  =  "Saisissez votre nom" 
validator  =  { validationField } 
 / > 

 < Field
name  =  "cardNumber" 
composant  =  { Entrée } 
label  =  "Numéro de carte" 
placeholder  =  "Entrez votre numéro de carte" 
validator  =  { validationField } 
 / > 

 < Field
name  =  "date d'expiration" 
composant  =  { Entrée } 
label  =  "Date d'expiration" 
placeholder  =  "Date d'expiration" 
validator  =  { validationField } 
 / > 

 < Field
name  =  { 'cvv' } 
composant  =  { Entrée } 
label  =  { 'CVV' } 
espace réservé  =  "CVV" 
validator  =  { validationField } 
 / > 

Depuis que nous avons créé des champs personnalisés tels que Entrée si nous essayons de soumettre le formulaire sans remplir les champs, nous recevrons quelques erreurs. Cela signifie que nos fonctions de validation personnalisées fonctionnent assez bien.

Parfois, nos formulaires peuvent devenir assez complexes, nous devons donc les diviser en plusieurs étapes. Les formulaires en plusieurs étapes peuvent être très utiles et constituer une bonne alternative à un formulaire long et complexe. L'affichage de quelques entrées à la fois peut aider votre utilisateur à accorder plus d'attention et à éviter qu'il se sente dépassé.

Si vous avez déjà essayé de le faire. implémentez un formulaire en plusieurs étapes dans React, vous savez à quel point cela peut parfois être difficile. Les formulaires en plusieurs étapes mis en œuvre de manière incorrecte peuvent créer un ensemble de composants complexes et mal construits et entraîner une expérience utilisateur indésirable. très facilement lorsque vous avez un formulaire long et complexe et que vous souhaitez le diviser en étapes plus petites pour créer une meilleure expérience pour votre utilisateur.

KendoReact Form nous facilite simplement la création formulaires dans React et personnalisez tout ce que nous voulons. Il possède une gamme de composants différents qui peuvent nous aider à améliorer notre expérience utilisateur dans toutes les parties de nos applications.

Conclusion

De nos jours, des formulaires sont requis dans chaque application. Savoir comment les construire et les entretenir correctement nécessite du temps et de nombreuses recherches. Il y a beaucoup de points UX différents auxquels nous devons prêter attention lors de la construction de nos formulaires dans React afin de fournir une expérience agréable et accessible à nos utilisateurs.

KendoReact Form est une bibliothèque d'interface utilisateur très mature et complète pour les applications React. Il contient de nombreux composants différents pour différentes approches et solutions qui pourraient vous aider à accélérer votre application et à disposer d'un ensemble de composants plus robuste et évolutif.





Source link