📘 Chapitre – Réagir aux événements utilisateur
1. 🎯 Objectif pédagogique
Apprendre à gérer les événements utilisateur (clics, saisies, survols, soumissions de formulaire) dans React et à déclencher des mises à jour d’état ou des actions.
2. 📚 Concepts abordés
- Gestion des événements avec la syntaxe JSX (
onClick
,onChange
,onSubmit
) - Utilisation des fonctions fléchées et des callbacks
- Mise à jour de l’état via
useState
en réponse aux événements - Prévention du comportement par défaut (
event.preventDefault()
) - Événements de formulaire et champs contrôlés
3. 🧠 Explication théorique
Les événements en React sont similaires au JavaScript classique, mais avec une syntaxe camelCase et une fonction comme valeur :
<button onClick={maFonction}>Cliquez ici</button>
Pour passer des arguments, utiliser une fonction fléchée :
<button onClick={() => handleClick("Alice")}>Salut</button>
Champs contrôlés
Un champ d’entrée dont la valeur est synchronisée avec un état React :
const [nom, setNom] = useState("");
<input value={nom} onChange={(e) => setNom(e.target.value)} />
4. 🛠 Tutoriel pratique
Résumé du travail : Créer un composant formulaire simple qui réagit à la saisie utilisateur.
Arborescence projet :
react-demo/
├── src/
│ ├── App.jsx
│ └── Formulaire.jsx
Étape 1 : Créer Formulaire.jsx
import { useState } from 'react';
function Formulaire() {
const [nom, setNom] = useState("");
const handleSubmit = (e) => {
e.preventDefault();
alert(`Bonjour ${nom} !`);
};
return (
<form onSubmit={handleSubmit}>
<label>Votre nom :</label>
<input
type="text"
value={nom}
onChange={(e) => setNom(e.target.value)}
/>
<button type="submit">Envoyer</button>
</form>
);
}
export default Formulaire;
Étape 2 : Utiliser le composant dans App.jsx
import Formulaire from './Formulaire';
function App() {
return (
<div>
<h1>Réagir aux événements</h1>
<Formulaire />
</div>
);
}
export default App;
Étape 3 : Ajouter un bouton avec un événement onClick
<button onClick={() => alert("Clic détecté !")}>Cliquez-moi</button>
Étape 4 : Ajouter un champ contrôlé supplémentaire
const [email, setEmail] = useState("");
<input
type="email"
value={email}
onChange={(e) => setEmail(e.target.value)}
/>
5. 🧾 Résumé et points-clés
- Les événements React utilisent des noms camelCase :
onClick
,onChange
. - Les champs contrôlés sont synchronisés avec un state via
value
etonChange
. e.preventDefault()
empêche le rechargement d’une page lors de la soumission d’un formulaire.- Les fonctions fléchées facilitent le passage d’arguments dans les gestionnaires d’événements.