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

jsx
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

jsx
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

jsx
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)

✅ Bon prompt

"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

✅ Bon prompt

"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

✅ Bon prompt

"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)

❌ Prompt vague

"Récupère des données depuis une API"

➜ Ne mentionne pas useEffect, pas d'URL, pas de gestion d'état

❌ Prompt imprécis

"Fais du routing"

➜ Ne précise pas les routes, les composants, ou la structure

❌ Prompt sans contexte technique

"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 :

  1. Relisez le chapitre correspondant
  2. Refaites les exercices
  3. Testez les exemples de code dans votre projet React
  4. 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

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