Conclusion - Séance 4
Félicitations ! Vous avez maîtrisé les effets de bord et le routing en React.
Ce que vous maîtrisez maintenant
Information
Vous avez acquis les compétences pour créer des applications React complètes avec données externes et navigation multi-pages. Chaque concept vous permettra de connecter vos interfaces à des APIs et de gérer la navigation.
Effets de bord
- useEffect : Gérer les side effects, comprendre le cycle de vie (mount, update, unmount)
- Tableaux de dépendances : Contrôler quand un effet s'exécute (sans tableau, tableau vide, avec dépendances)
- Cleanup : Nettoyer les timers, abonnements et éviter les fuites mémoire
Data Fetching
- fetch API & async/await : Récupérer des données depuis une API REST
- Gestion des états : Loading, error, success - les 3 états d'un appel réseau
- Pattern fetch au mount : Charger les données quand le composant apparaît
Navigation
- React Router : Routes, Route, Link pour créer une application multi-pages (SPA)
- Routes dynamiques : useParams, paramètres d'URL, routes avec :id
- Combiner effects & routing : Fetch des données basées sur les paramètres d'URL
Travail avec l'IA
- Vocabulaire technique → Donner des instructions précises (useEffect, dépendances, cleanup, routing)
- Lecture de code React avancé → Valider et corriger le code généré par l'IA (patterns de fetch, configuration de routes)
Pourquoi ces concepts sont essentiels
Vous êtes maintenant équipé(e) pour
1. Créer des applications multi-pages
- Mettre en place React Router pour la navigation
- Créer des URLs bookmarkables et partageables
- Gérer l'historique du navigateur
2. Intégrer des données externes
- Récupérer des données depuis des APIs
- Gérer les états de chargement et d'erreur
- Synchroniser les données avec les routes
3. Maîtriser le cycle de vie
- Comprendre quand les effets s'exécutent
- Utiliser les tableaux de dépendances correctement
- Implémenter des cleanups pour éviter les fuites mémoire
4. Collaborer efficacement avec l'IA sur des apps complexes
- Expliquer les problèmes de dépendances à l'IA
- Demander des patterns de fetch optimisés
- Déboguer les problèmes de routing avec l'IA
Patterns fondamentaux des effets et du routing
Le pattern fetch au mount
useEffect(() => {
async function fetchData() {
const response = await fetch(url);
const data = await response.json();
setData(data);
}
fetchData();
}, []); // Tableau vide = une seule fois
Pattern essentiel
Ce pattern est utilisé dans toutes les applications React qui consomment des APIs :
- La fonction async est déclarée à l'intérieur du useEffect
- Le tableau vide
[]garantit un seul appel - Les données sont stockées dans le state
Le pattern fetch basé sur les paramètres
const { id } = useParams();
useEffect(() => {
async function fetchData() {
const response = await fetch(`/api/items/${id}`);
const data = await response.json();
setData(data);
}
fetchData();
}, [id]); // Re-fetch si id change
Règle d'or
Incluez toujours toutes les variables utilisées dans le tableau de dépendances.
Si votre effet utilise id, mettez id dans les dépendances pour que React re-exécute l'effet quand la valeur change.
Le pattern cleanup
useEffect(() => {
const id = setInterval(() => {
console.log('Tick');
}, 1000);
return () => clearInterval(id); // Cleanup
}, []);
Cleanup obligatoire
Retournez toujours une fonction de cleanup pour :
- Les timers (setInterval, setTimeout)
- Les abonnements (WebSocket, EventSource)
- Les event listeners manuels
Comment utiliser l'IA maintenant que vous connaissez les effets et le routing
✅ Exemples de bons prompts (avec vos connaissances)
"Crée un composant qui fetch les données d'un utilisateur depuis /api/users/:id au mount et gère les états loading et error"
➜ Précis, mentionne useEffect, fetch, et la gestion d'état
"Configure React Router avec 3 routes : Home (/), About (/about), et une route dynamique UserProfile (/users/:id)"
➜ Détaille les routes exactes et mentionne le paramètre dynamique
"J'ai une fuite mémoire dans mon useEffect avec un setInterval. Ajoute le cleanup pour clearInterval au unmount"
➜ Identifie le problème précis et demande la solution technique exacte
❌ Exemples de prompts moins efficaces (sans connaissances)
"Récupère des données depuis une API"
➜ Ne mentionne pas useEffect, pas d'URL, pas de gestion d'état
"Fais du routing"
➜ Ne précise pas les routes, les composants, ou la structure
"Mon composant ne marche pas"
➜ Ne décrit pas le problème, pas de code, pas de message d'erreur
Validation des compétences
Avant de passer à la Séance 5 (Projet Final), assurez-vous de maîtriser ces concepts clés :
Je sais utiliser useEffect avec les 3 patterns de dépendances
Sans tableau, tableau vide, et avec dépendances
Je comprends le cycle de vie (mount, update, unmount)
Et quand utiliser le cleanup
Je sais fetch des données avec async/await dans useEffect
Et gérer loading et error
Je maîtrise React Router (Routes, Route, Link)
Pour créer des applications multi-pages
Je sais utiliser useParams pour les routes dynamiques
Et fetch les données basées sur l'URL
Je peux combiner useEffect et routing
Pour créer des pages qui chargent leurs données automatiquement
Besoin de réviser ?
Si vous n'êtes pas à l'aise avec l'un de ces concepts :
- Relisez le chapitre correspondant
- Refaites les exercices
- Testez les exemples de code dans votre projet React
- Posez des questions (en cours ou sur Moodle)
Ne passez pas à la Séance 5 sans maîtriser ces bases - vous seriez perdu(e) !
Prochaines étapes
Séance 5 : Projet Final & IA
Maintenant que vous maîtrisez useEffect et le routing, vous êtes prêt(e) pour le projet final :
- Custom Hooks : Réutiliser la logique entre composants
- Best Practices : Architecture et organisation du code
- Workflow avec l'IA : Développer rapidement avec des prompts efficaces
- Debugging et optimisation : Améliorer les performances
- Projet guidé et projet final : Mettre tout en pratique
Tous les concepts que vous venez d'apprendre seront utilisés dans votre projet final !
Conseils pour la suite
Mindset pour réussir
1. Pratiquez le fetch de données
- Testez différentes APIs publiques
- Gérez tous les cas (loading, error, success)
- Expérimentez avec les dépendances
2. Créez des mini-projets avec routing
- Blog avec liste d'articles et pages de détail
- Annuaire utilisateurs
- Catalogue de produits
3. Utilisez l'IA intelligemment
- Demandez des patterns de fetch optimisés
- Faites valider votre utilisation de useEffect
- Apprenez des solutions proposées
4. Consultez la documentation
Ressources pour aller plus loin
React Docs - useEffect
La documentation officielle sur useEffect
DocumentationReact Router Documentation
Guide complet de React Router v6
DocumentationJSONPlaceholder
API gratuite pour tester vos fetch
Bravo !
Vous avez maîtrisé les effets et le routing en React
Vous pouvez maintenant créer des applications React complètes avec données externes et navigation !
→ Faire le quiz de validation