Context API
Context API — État global natif
Intégré à React. Idéal pour des états peu fréquemment mis à jour (thème, auth, langue).
Pattern complet avec custom provider
// AuthContext.jsx
import { createContext, useContext, useState } from 'react';
const AuthContext = createContext(null);
export function AuthProvider({ children }) {
const [user, setUser] = useState(null);
const login = async (credentials) => {
const data = await loginAPI(credentials);
setUser(data.user);
};
const logout = () => setUser(null);
return (
<AuthContext.Provider value={{ user, login, logout }}>
{children}
</AuthContext.Provider>
);
}
export function useAuth() {
const ctx = useContext(AuthContext);
if (!ctx) throw new Error("useAuth must be used within AuthProvider");
return ctx;
}
// main.jsx
<AuthProvider>
<App />
</AuthProvider>
// Composant
function Navbar() {
const { user, logout } = useAuth();
return <button onClick={logout}>{user?.nom} — Déconnexion</button>;
}