📘 Chapitre – Gérer l’état avec useState
1. 🎯 Objectif pédagogique
Apprendre à utiliser le hook useState
pour gérer l’état local d’un composant React et rendre l’interface dynamique.
2. 📚 Concepts abordés
- Notion d’état local d’un composant
- Hook
useState()
et sa syntaxe - Mise à jour de l’état avec la fonction
setState
- Rendu dynamique en fonction de l’état
- Bonne pratique : ne jamais modifier l’état directement
3. 🧠 Explication théorique
L’état local est une variable spécifique à un composant qui peut évoluer au cours de la vie de ce composant. useState
retourne un tableau de deux éléments :
const [valeur, setValeur] = useState(valeurInitiale);
valeur
: la valeur actuelle de l’état.setValeur
: une fonction pour mettre à jour cette valeur.
Exemple : compteur
const [count, setCount] = useState(0);
<button onClick={() => setCount(count + 1)}>Incrémenter</button>
Chaque clic mettra à jour la valeur count
.
4. 🛠 Tutoriel pratique
Résumé du travail : Créer un composant compteur qui utilise useState
.
Arborescence projet :
react-demo/
├── src/
│ ├── App.jsx
│ └── Compteur.jsx
Étape 1 : Créer Compteur.jsx
import { useState } from 'react';
function Compteur() {
const [count, setCount] = useState(0);
return (
<div>
<p>Valeur du compteur : {count}</p>
<button onClick={() => setCount(count + 1)}>+1</button>
<button onClick={() => setCount(count - 1)}>-1</button>
<button onClick={() => setCount(0)}>Réinitialiser</button>
</div>
);
}
export default Compteur;
Étape 2 : Importer dans App.jsx
import Compteur from './Compteur';
function App() {
return (
<div>
<h1>Gestion de l’état avec React</h1>
<Compteur />
</div>
);
}
export default App;
Étape 3 : Tester
Lancer :
npm run dev
Puis interagir avec le compteur.
Étape 4 : Ajouter une valeur initiale dynamique
const [count, setCount] = useState(() => Math.floor(Math.random() * 10));
5. 🧾 Résumé et points-clés
useState()
permet de gérer l’état local d’un composant fonctionnel.- La valeur et la fonction
setValeur
sont liées : modifier l’état déclenche un nouveau rendu. - Ne jamais modifier directement une variable d’état (ex :
count++
interdit). - Chaque composant peut avoir plusieurs états :
const [nom, setNom] = useState("Alice");
const [age, setAge] = useState(25);