Front-end · 6 mondes · 18 étapes
React
Composants, état, effets : des interfaces web qui réagissent, rendues pour de vrai.
Progression
0 %
0/18 étapes terminées
Avancé · 10 min de lecture
Des composants qui tiennent
Remonter, extraire, centraliser
1Définition
Quand une application grandit : on remonte l'état partagé dans le parent commun (props vers le bas, fonctions pour remonter les événements), on extrait les logiques répétées dans des hooks personnalisés, et l'on centralise les changements complexes dans un réducteur (useReducer).
2Principes fondamentaux
01
Une source de vérité
Un état partagé vit dans un seul composant.
02
Des hooks pour la logique
useQuelqueChose, chaque appel a son propre état.
03
Des actions qui décrivent
dispatch({ type: "cocher", id }) : ce qui s'est passé, pas comment.
04
Un réducteur pur
État + action → nouvel état, sans effet de bord.
3Exemples pratiques
Partager au loin avec un contexte
1const ThemeContext = createContext("clair");2 3<ThemeContext value="sombre"><Page /></ThemeContext>4 5const theme = use(ThemeContext); // n'importe où en dessousQuand une donnée doit traverser beaucoup de niveaux, le contexte évite de la passer de parent en enfant.
Tester un réducteur
1const avant = [{ id: 1, texte: "Quiz", faite: false }];2const apres = reducteur(avant, { type: "cocher", id: 1 });3// apres[0].faite === true, et avant n'a pas bougéUne fonction pure se teste sans interface, avec les outils du cours Tests & déploiement.
4Erreurs courantes
Dupliquer l'état
À éviter
// deux composants, deux useState pour la même sérieÀ faire
Un état dans le parent communPourquoi : Ils se désynchronisent.
Un hook dans une condition
À éviter
if (ouvert) useEffect(…)À faire
useEffect(() => { if (ouvert) … })Pourquoi : L'ordre des hooks doit être identique à chaque rendu.
Muter dans le réducteur
À éviter
etat.push(tache); return etat;À faire
return [...etat, tache];Pourquoi : Un réducteur renvoie un nouvel état.
5Subtilités à connaître
- ◆Le contexte n'est pas un gestionnaire d'état : il transporte une valeur, souvent un état tenu plus haut.
- ◆Le compilateur React (React Compiler) mémorise automatiquement ce qui doit l'être :
useMemoetuseCallbackdeviennent rarement nécessaires. - ◆Zustand, Redux Toolkit ou Jotai prennent le relais quand l'état partagé devient vraiment global — Sys-Code utilise Zustand.
6Vérifie ta compréhension
Question 1/3
Score 0
Un enfant modifie l'état du parent…
Envie d'essayer ? Ouvre le Labo et recopie les exemples pour les modifier.