Exercices Context API
10 exercices pour maîtriser createContext, Provider, useContext et les hooks personnalisés de context.
createContext
Tâche : Créez 3 contexts différents avec createContext(valeurParDéfaut) : pour le thème, l'utilisateur et la langue.
Provider avec value
Tâche : Créez un ThemeProvider qui enveloppe ses children avec <ThemeContext.Provider value={{ theme, setTheme }}>.
useContext
Tâche : Consommez un context avec useContext(MonContext) dans deux composants distincts sans passer de props.
Theme context complet
Tâche : Implémentez un système de thème complet : ThemeContext, ThemeProvider, useTheme() et un composant qui bascule entre clair/sombre.
Auth context
Tâche : Créez un AuthContext avec user, login(email) et logout(). Le AuthProvider stocke l'utilisateur dans le state.
Hook personnalisé
Tâche : Créez un context de notifications avec un hook useNotif() qui expose notifs et ajouterNotif(message, type).
Context de langue (i18n)
Tâche : Créez un LangueContext avec un objet t (traductions) et un bouton pour basculer entre fr/en.
Context panier
Tâche : Créez un CartProvider avec panier, ajouter(produit), supprimer(id) et total (calculé).
Plusieurs contexts imbriqués
Tâche : Créez 2 contexts distincts (ThemeContext + AuthContext) et imbriquez leurs Providers dans App.
Architecture complète
Tâche finale : Un seul AppProvider qui gère thème, auth et langue. Hook useApp() avec vérification d'erreur. Plusieurs composants le consomment.
Passer le QCM R07