State

Le state (état) est un objet JavaScript local et mutable qui stocke les données dynamiques d’un composant.

Sa particularité fondamentale : toute modification déclenche automatiquement un nouveau rendu du composant (et de ses enfants si nécessaire), synchronisant ainsi l’interface utilisateur avec les données.

Caractéristiques essentielles

Critère Détail
Portée Strictement local au composant (sauf partage explicite via props/contexte)
Mutabilité Jamais modifié directement → uniquement via des fonctions dédiées (setState, setX)
Cycle de vie Persiste entre les rendus, mais est détruit au démontage du composant
Déclencheur de rendu Oui (contrairement aux ref ou variables locales)
Initialisation Défini à la création du composant (valeur initiale obligatoire)

Exemple simple

import { useState } from 'react';

function MessageToggle() {
  // Déclare un état booléen "visible" (départ : false)
  const [visible, setVisible] = useState(false);

  return (
    <div>
      <button onClick={() => setVisible(!visible)}>
        {visible ? 'Masquer' : 'Afficher'} le message
      </button>
      
      {visible && <p>Bonjour ! Voici un message secret.</p>}
    </div>
  );
}

Ce qui se passe :

Action État visible Rendu
Au chargement false Bouton « Afficher le message » + pas de message
Clic sur le bouton Devient true Bouton « Masquer le message » + message visible
Nouveau clic Devient false Bouton « Afficher le message » + message caché

State vs autres concepts React

Concept Modifiable ? Déclenche un rendu ? Usage typique
state Via fonction dédiée Oui Données dynamiques internes au composant
props Lecture seule Non (mais reçoit mises à jour du parent) Données transmises par le composant parent
ref (useRef) Directement Non Valeurs persistantes sans impact UI (timers, DOM)
Variable locale Oui Non Données temporaires n’impactant pas l’UI

Documentation

Les contenus de définition restent publics. Les ressources (outils, grilles, supports) liées à cette fiche sont disponibles dans l’espace membre.