MODULE R04 — EXERCICES

Exercices useEffect

10 exercices pour maîtriser les effets de bord : fetch, timers, écouteurs d'événements et cleanup.

10 exercices Validation automatique Solutions téléchargeables (.jsx)
EX 1

Modifier document.title

Tâche : Utilisez useEffect pour synchroniser document.title avec la valeur d'un compteur — sans tableau de dépendances (s'exécute à chaque rendu).

EX 2

Effet au montage uniquement

Tâche : Créez un composant qui enregistre l'heure d'arrivée une seule fois — utilisez useEffect(() => { ... }, []) avec le tableau vide.

EX 3

useEffect avec dépendances

Tâche : Créez une barre de recherche qui filtre des résultats à chaque fois que la query change — useEffect(() => { ... }, [query]).

EX 4

Cleanup — clearInterval

Tâche : Créez un chronomètre avec setInterval dans useEffect. La fonction de cleanup doit appeler clearInterval pour éviter les fuites mémoire.

EX 5

Fetch de données

Tâche : Chargez une liste de postes depuis jsonplaceholder.typicode.com/posts?_limit=5 dans useEffect avec []. Gérez le loading et les erreurs.

EX 6

Horloge temps réel

Tâche : Créez une horloge qui se met à jour chaque seconde avec setInterval + cleanup clearInterval.

EX 7

EventListener sur window

Tâche : Détectez la taille de la fenêtre avec window.addEventListener('resize', ...) dans useEffect. La cleanup doit appeler removeEventListener.

EX 8

Loading / erreur complets

Tâche : Créez un composant Utilisateur qui reçoit userId, le fetche, et affiche un état de chargement, d'erreur ou les données selon le cas.

EX 9

AbortController

Tâche : Utilisez AbortController pour annuler un fetch en cours si le composant se démonte — retournez () => controller.abort() dans la cleanup.

EX 10

Plusieurs useEffect indépendants

Tâche finale : Créez un Dashboard avec au moins 2 useEffect distincts : un pour le titre de la page, un pour un timer ou un écouteur d'événement réseau.

🧠 Prêt pour le QCM ? — 10 questions sur useEffect.
Passer le QCM R04
← Cours R04 ▶ Mini-projet : Weather Widget Suivant : Événements →