Exercices useState
10 exercices pour maîtriser le state local : useState, objets, tableaux, dérivation et lifting state up.
useState basique
Tâche : Créez un composant Compteur qui utilise useState(0) et des boutons +1, -1, Reset.
Forme updater
Tâche : Refactorisez le compteur pour utiliser la forme setCount(prev => prev + 1) (updater function) — cette forme est plus sûre quand la valeur dépend de l'ancienne.
Toggle booléen
Tâche : Créez un composant ToggleMode qui bascule entre mode sombre et clair avec setSombre(prev => !prev).
Champ contrôlé
Tâche : Créez un formulaire avec deux champs contrôlés : chaque champ doit avoir value={state} et onChange={e => setState(e.target.value)}.
State objet
Tâche : Gérez un état objet { nom, age, ville } et mettez à jour une seule propriété avec le spread operator : setProfil(prev => {{ ...prev, ville: val }}).
State tableau
Tâche : Créez une liste de courses : ajouter avec [...prev, nouvel], supprimer avec .filter(), afficher avec .map() + key.
State dérivé
Tâche : Gérez un tableau de scores avec useState, et calculez total, moyenne, max, min directement (sans useState supplémentaire).
États multiples
Tâche : Simulez une requête API avec 3 useState distincts : loading, erreur, donnees — affichez l'état approprié selon l'étape.
Lifting State Up
Tâche : Créez un convertisseur °C/°F avec le state dans le composant parent et un callback passé via props à l'enfant InputCelsius.
Todo list complète
Tâche finale : Implémentez une Todo list complète : useState([...]), ajouter via formulaire, cocher/décocher, supprimer, afficher le compteur de tâches terminées.
Passer le QCM R03