codelynx.dev
🇫🇷🇬🇧

Retour 10/12/2024

Fetch des données en React - Le guide ultime pour bien faire

Écris par Melvyn Malherbe le 10/12/2024


Le fetch de données est une partie essentielle de toute application web moderne. Dans ce guide, je vais t'expliquer les différentes méthodes pour fetch des données en React, leurs avantages et inconvénients.

Pourquoi fetch des données ?

Quasiment toutes les applications web ont besoin de récupérer des données depuis une API. Que ce soit pour afficher :

  • Une liste d'articles
  • Les informations d'un utilisateur
  • Des données en temps réel
  • Des statistiques

Le fetch de données est partout ! Mais comment bien le faire en React ?

useEffect + fetch

La première approche, celle que tout le monde utilise au début, c'est d'utiliser useEffect avec fetch. Si tu ne connais pas bien useEffect, je te conseille de lire mon article sur useEffect.

Voici un exemple simple :

Ce code est simple mais il a plusieurs problèmes :

  • Pas de gestion d'erreur
  • Pas d'état de chargement
  • Pas d'annulation des requêtes (memory leak)
  • Pas de cache
  • Pas de revalidation

Dans une grosse application, on ne peut pas vraiment se passer de ce genre de fonctionnalités. Pour les avoir, on va pouvoir avoir un code du genre :

Ce code est beaucoup plus complet mais :

  • Il est très verbeux
  • Il faut répéter cette logique pour chaque fetch
  • Il manque encore des fonctionnalités (cache, revalidation, etc.)

Pour résoudre ce problème, on va utiliser des librairies qui permettent de gérer ça pour nous sans avoir besoin de se soucier de tout ça.

SWR - La solution simple

SWR est une librairie créée par Vercel qui simplifie énormément le fetch de données. Voici le même exemple avec SWR :

Avantages de SWR :

  • Code très concis
  • Gestion automatique du cache
  • Revalidation automatique
  • Gestion des erreurs simplifiée
  • Optimisé pour Next.js

Tanstack Query - La solution complète

Tanstack Query (anciennement React Query) est la solution la plus complète pour gérer le fetch de données en React.

Tanstack Query offre encore plus de fonctionnalités :

  • Gestion avancée du cache
  • Invalidation du cache
  • Mutations optimistes
  • Prefetching
  • DevTools intégrés
  • Support TypeScript natif

Conclusion

Pour résumer, voici mes recommandations :

  1. N'utilise pas useEffect + fetch directement, c'est trop complexe à bien faire
  2. Utilise SWR si tu travailles avec Next.js et que tu veux une solution simple car tu ne fais pas beaucoup de fetch des données
  3. Utilise Tanstack Query si tu veux une solution complète et que tu as besoin de fonctionnalités avancées

En règle général, il n'y a pas besoin de réfléchir :

Utilise toujours Tanstack Query !

C'est de loin la meilleure solution dans la majorité des cas.

Le meilleur moyen d'apprendre NextJS !

Rejoins par développeurs, cette formation reçoit une note de 4.7 / 5 🚀

Reçois la formation gratuitement dans ta boîte mail :

Si tu veux approfondir tes connaissances React, je te conseille de lire :

NextReact

Cours NextJS gratuit

Accède à des exercices, des vidéos et bien plus sur NextJS dans la formation "NextReact" 👇