useEffect
React 🟢 JuniorDéfinition
Hook pour synchroniser un composant avec un système externe (API, DOM, timer). S'exécute après le rendu, avec un tableau de dépendances pour contrôler quand il se relance.
Analogie
Comme un abonnement a un journal : tu t'abonnes (setup), tu reçois les numéros (re-runs), et tu te desabonnes (cleanup) en partant.
Exemple de code
useEffect(() => {
const ctrl = new AbortController();
fetch('/api/data', { signal: ctrl.signal })
.then(r => r.json())
.then(setData);
return () => ctrl.abort(); // cleanup
}, [userId]); // re-run si userId change
Cas d'usage
Appels API, abonnements WebSocket, synchronisation avec le DOM ou des librairies externes.
Anti-pattern
Omettre des dépendances pour 'éviter les re-runs', causant des stale closures avec des valeurs périmées.