ReactJS - Composants de Formulaire

Bonjour à tous, aspirants développeurs ! Aujourd'hui, nous allons plonger dans le monde passionnant des composants de formulaire React. En tant que votre enseignant de science informatique de quartier, je suis là pour vous guider à travers ce voyage étape par étape. Alors, prenez votre boisson favorite, asseyez-vous confortablement, et mettons-nous ensemble à cette aventure de codage !

ReactJS - Form Components

Qu'est-ce qu'un Composant de Formulaire ?

Avant de nous lancer dans les détails des composants de formulaire React, penchons-nous un moment pour comprendre ce qu'ils sont et pourquoi ils sont si importants.

Définition

Un composant de formulaire dans React est un composant spécialisé conçu pour gérer les entrées utilisateur et la soumission des données. C'est comme une version numérique de ces formulaires en papier que vous remplissez au cabinet du médecin, mais bien plus cool et interactif !

Importance

Les composants de formulaire sont cruciaux dans le développement web car ils servent de moyen principal pour recueillir des informations auprès des utilisateurs. Que ce soit un simple formulaire de connexion ou un sondage complexe, les composants de formulaire rendent possible l'interaction des utilisateurs avec votre application et la fourniture de données précieuses.

Application des Composants de Formulaire

Maintenant que nous comprenons ce que sont les composants de formulaire, mettons nos manches à la pâte et apprenons comment les créer et les utiliser dans React.

Structure de Base du Formulaire

Commençons par un exemple simple d'un composant de formulaire :

import React, { useState } from 'react';

function SimpleForm() {
const [name, setName] = useState('');

const handleSubmit = (event) => {
event.preventDefault();
alert(`Bonjour, ${name} !`);
};

return (
<form onSubmit={handleSubmit}>
<label>
Nom :
<input
type="text"
value={name}
onChange={(e) => setName(e.target.value)}
/>
</label>
<button type="submit">Soumettre</button>
</form>
);
}

Décomposons cela :

  1. Nous importons useState de React pour gérer l'état de notre formulaire.
  2. Nous créons un composant fonctionnel appelé SimpleForm.
  3. À l'intérieur du composant, nous utilisons useState pour créer une variable d'état name et sa fonction de setter setName.
  4. Nous définissons une fonction handleSubmit qui empêche le comportement par défaut de la soumission du formulaire et affiche une alerte avec le nom saisi.
  5. Dans l'instruction de retour, nous rendons un formulaire avec un champ d'entrée pour le nom et un bouton de soumission.
  6. Le champ d'entrée est contrôlé par l'état name, et son événement onChange met à jour l'état lorsque l'utilisateur tape.

Gestion de Multiples Entrées

Maintenant, levons le niveau et créons un formulaire avec plusieurs entrées :

import React, { useState } from 'react';

function MultiInputForm() {
const [formData, setFormData] = useState({
firstName: '',
lastName: '',
email: ''
});

const handleChange = (event) => {
const { name, value } = event.target;
setFormData(prevData => ({
...prevData,
[name]: value
}));
};

const handleSubmit = (event) => {
event.preventDefault();
console.log('Formulaire soumis:', formData);
};

return (
<form onSubmit={handleSubmit}>
<label>
Prénom :
<input
type="text"
name="firstName"
value={formData.firstName}
onChange={handleChange}
/>
</label>
<label>
Nom :
<input
type="text"
name="lastName"
value={formData.lastName}
onChange={handleChange}
/>
</label>
<label>
Email :
<input
type="email"
name="email"
value={formData.email}
onChange={handleChange}
/>
</label>
<button type="submit">Soumettre</button>
</form>
);
}

Dans cet exemple :

  1. Nous utilisons un seul objet d'état formData pour stocker tous les champs du formulaire.
  2. La fonction handleChange utilise l'attribut name de l'entrée pour mettre à jour le champ correct dans l'état.
  3. Nous utilisons l'opérateur de diffusion (...prevData) pour copier l'état existant avant de le mettre à jour.

Validation du Formulaire

Aucun formulaire n'est complet sans validation ! Ajoutons une validation de base à notre formulaire :

import React, { useState } from 'react';

function ValidatedForm() {
const [formData, setFormData] = useState({
username: '',
password: ''
});
const [errors, setErrors] = useState({});

const handleChange = (event) => {
const { name, value } = event.target;
setFormData(prevData => ({
...prevData,
[name]: value
}));
};

const validate = () => {
let tempErrors = {};
if (!formData.username) tempErrors.username = "Le nom d'utilisateur est obligatoire";
if (formData.password.length < 6) tempErrors.password = "Le mot de passe doit comporter au moins 6 caractères";
setErrors(tempErrors);
return Object.keys(tempErrors).length === 0;
};

const handleSubmit = (event) => {
event.preventDefault();
if (validate()) {
console.log('Formulaire soumis:', formData);
} else {
console.log('Le formulaire contient des erreurs');
}
};

return (
<form onSubmit={handleSubmit}>
<label>
Nom d'utilisateur :
<input
type="text"
name="username"
value={formData.username}
onChange={handleChange}
/>
{errors.username && <span style={{color: 'red'}}>{errors.username}</span>}
</label>
<label>
Mot de passe :
<input
type="password"
name="password"
value={formData.password}
onChange={handleChange}
/>
{errors.password && <span style={{color: 'red'}}>{errors.password}</span>}
</label>
<button type="submit">Soumettre</button>
</form>
);
}

Dans cet exemple :

  1. Nous ajoutons un nouvel état errors pour stocker les erreurs de validation.
  2. Nous créons une fonction validate qui vérifie un nom d'utilisateur vide et un mot de passe court.
  3. Dans handleSubmit, nous ne procédons que si le formulaire passe la validation.
  4. Nous affichons des messages d'erreur sous chaque champ d'entrée lorsque la validation échoue.

Conclusion

Et voilà, les amis ! Nous avons parcouru le pays des composants de formulaire React, des simples entrées aux formulaires à plusieurs champs avec validation. Souvenez-vous, la pratique rend parfait, alors n'ayez pas peur d'expérimenter avec ces concepts et de créer vos propres formulaires.

Pour clore, voici un petit tableau résumant les méthodes clés que nous avons utilisées dans nos composants de formulaire :

Méthode Objectif
useState Gérer l'état du formulaire
onChange Gérer les changements d'entrée
onSubmit Gérer la soumission du formulaire
preventDefault Empêcher le comportement par défaut du formulaire

Continuez à coder, restez curieux, et souvenez-vous : dans le monde du programmation, chaque erreur n'est qu'une opportunité d'apprentissage déguisée. Bon codage !

Credits: Image by storyset