Gestion des événements -Event Handling en React

La gestion des événements en React permet de réagir aux interactions utilisateur (clics, saisies, soumissions, etc.).

Elle suit une syntaxe proche du HTML mais avec des spécificités JSX pour s’intégrer au système de rendu de React.

Les 3 Règles d’Or (Différences HTML vs React)

Caractéristique HTML Standard React (JSX)
Nomming Minuscules (onclick) camelCase (onClick)
Valeur Chaîne de caractères (« maFonction() ») Référence de fonction ({maFonction})
Comportement Peut empêcher le défaut avec return false Doit appeler e.preventDefault() explicitement

Exemple click bouton

function MonBouton() {
  // Définition de la fonction
  const handleClick = () => {
    console.log('Bouton cliqué !');
  };

  return (
    // Correct : On passe la fonction (sans parenthèses)
    <button onClick={handleClick}>
      Cliquer
    </button>
  );
}

Submission Formulaire (Avec prévention)

function MonFormulaire() {
  const handleSubmit = (e) => {
    e.preventDefault(); // Indispensable pour éviter le rechargement
    console.log('Formulaire soumis');
  };

  return (
    <form onSubmit={handleSubmit}>
      <button type="submit">Envoyer</button>
    </form>
  );
}

Événement avec Argument

function Liste() {
  const supprimer = (id) => {
    console.log(`Suppression de ${id}`);
  };

  return (
    // Correct : On utilise une fonction fléchée pour passer l'argument
    <button onClick={() => supprimer(123)}>
      Supprimer
    </button>
  );
}

Pièges Courants à Éviter

Appeler la fonction directement dans le JSX :

// ERREUR : La fonction s'exécute pendant le rendu (boucle infinie possible)
<button onClick={handleClick()}>Cliquer</button>

// CORRECT : On passe la référence
<button onClick={handleClick}>Cliquer</button>

Oublier e.preventDefault() sur les formulaires :

// La page se recharge annulant l'effet React
<form onSubmit={() => console.log('Submit')}>

// Le formulaire ne recharge pas la page
<form onSubmit={(e) => { e.preventDefault(); console.log('Submit'); }}>

Confondre onChange et onClick :

  • onClick → Pour les boutons, liens, divs.
  • onChange → Pour les inputs, selects, textareas (quand la valeur change).
Explorer les thématiques : React
Les contenus de définition restent publics. Les ressources (outils, grilles, supports) liées à cette fiche sont disponibles dans l’espace membre.