Comment nous avons intégré SWR dans un projet et pourquoi nous l’avons adoré
Kamil Polok
09 juin 2021・6 min de lecture
Table des matières
Pourquoi SWR ?
Qu’est-ce que SWR ?
Pourquoi nous avons adoré SWR
Comment fonctionne SWR
Mutation de données
Intégrations SWR
Pourquoi SWR ?
Récemment, chez SDH, nous avons eu l’occasion de développer un projet avec React, épaulé par Redux/Toolkit. Le problème, c’est que, même si les données étaient conservées et récupérées dans le store, il n’y avait aucun mécanisme de mise en cache dans l’app. Et garder des dizaines de réponses dans le state, ce n’est pas exactement ce que j’appelle une bonne idée. Quoi qu’il en soit, on s’est vite mis à se perdre parmi tous ces slices du state, malgré l’usage de Toolkit.
En plus, ça n’avait aucun impact côté back-end à ce stade. Avec ces blocs de données gros comme des icebergs qui dérivaient partout, certaines requêtes mettaient une éternité à se résoudre. Et comme l’UI de l’application se résumait à de longues listes d’éléments avec peu d’opérations CRUD, il est vite apparu qu’une forme de cache nous serait bien utile. Nous avons donc opté pour SWR — une bibliothèque conçue par les développeurs de Vercel (également à l’origine de Next.js).
Qu’est-ce que SWR ?
OK, vous aimez lire des définitions ? J’espère que non, car celle-ci va être l’une des plus courtes que vous ayez jamais lues. « SWR est une bibliothèque de React Hooks pour la récupération de données distantes ». Voilà. Simple ? Oui, mais je vais maintenant vous montrer que SWR est aussi très puissant. Et au cas où vous vous poseriez la question, SWR signifie stale-while-revalidate. Ce qui explique déjà comment ça marche. SWR renvoie les données depuis le cache (stale), envoie une requête pour obtenir des données à jour (revalidate), puis renvoie les nouvelles données. Comme je le disais, simple.
Pourquoi nous avons adoré SWR
Il est facile de voir en quoi l’usage de SWR élimine les problèmes décrits au début de cet article. Grâce à SWR, nous avons :
- Fait tourner l’UI parfaitement (après les premières requêtes) grâce à la mise en cache
- Supprimé presque tous les slices qui stockaient les données de l’API et la logique associée
- Simplifié le flux de revalidation des données après des opérations CRUD sur les collections
- Accéléré le développement de nouvelles fonctionnalités dépendantes de l’API
Comment l’avons-nous implémentée pour obtenir de tels résultats ?
Comment fonctionne SWR
Après un court temps d’adaptation, SWR s’est révélé plutôt simple et très agréable à utiliser. Envie de faire une requête API avec SWR ? Voilà :

La seule subtilité, c’est le fetcher. C’est simplement votre fonction maison pour récupérer les données. L’application sur laquelle nous travaillions avait déjà axios configuré (interceptors, headers, base URL, etc.), donc nous avons simplement enveloppé notre instance axios comme ceci pour obtenir notre fetcher personnalisé :

Du coup, le hook complet peut être aussi simple que ceci (on passe la gestion des erreurs dans cet exemple) :

Et… c’est tout ! Nous avons créé un hook pour récupérer des données d’API en profitant de tous les avantages de SWR. À chaque appel, il renverra d’abord les données précédemment récupérées (si elles existent), puis revalidera et renverra ensuite la nouvelle collection.
SWR, par défaut, propose une poignée de paramètres préconfigurés (ils sont tous listés ici), qui rendent son utilisation très simple. Une option favorite à mentionner est dedupingInterval.
Scénario typique : on récupère des données dans un composant, on continue à le développer, les composants enfants se multiplient, et voilà qu’un enfant au 4e niveau a besoin des mêmes données. Comment les lui transmettre sans trop d’efforts et sans répéter les requêtes ? Pas de panique : réutilisez simplement le hook SWR… L’intervalle de déduplication empêchera d’exécuter la requête à nouveau pendant une durée spécifiée (2 secondes par défaut). Ça marche.
« Mais si j’appelle l’endpoint et qu’il renvoie les mêmes données qu’avant, mon composant va quand même se re-render ». Non : SWR implémente une comparaison profonde, donc un nouveau rendu n’est déclenché que lorsque les données ont réellement changé. Et la fonction de comparaison peut, bien sûr, être personnalisée.
Mutation de données
Vous pourriez dire que faire des GET, c’est facile — mais qu’en est-il de la partie mutation ? C’est sûrement plus compliqué. Eh bien, pas vraiment : les mutations n’ont pas à être un cauchemar, et j’ai été surpris de voir à quel point il est facile de muter des données avec SWR (ayant déjà eu quelques aventures avec Apollo). Voici un exemple réel :

Dans cet exemple, mutate est une fonction importée depuis SWR et /users est la clé que nous lui avons donnée dans le hook useUsers (il ne faut pas forcément utiliser l’URL de l’endpoint — vous pouvez passer la clé et l’URL séparément).
Si vous souhaitez mettre en cache et mettre à jour une entité (objet) unique récupérée depuis une collection plus large, muter-la simplement par sa clé comme ceci :

Ça paraît trop simple ? Ça l’est. Essayez, et vous pourriez gagner un temps précieux à écrire moins de logique Redux et à déboguer vos appels d’API.
Intégrations SWR
Comme vous le voyez, implémenter SWR est simple ; avec quelques raffinements, il ne faut pas grand-chose pour faire évoluer les exemples ci-dessus vers des niveaux plus abstraits. Évidemment, SWR ne se limite pas à cela et propose un grand nombre d’options et d’intégrations :
intégration GraphQL
gestion des erreurs avec options de retry
revalidation automatique
prise en charge de la pagination (y compris le chargement infini)
préfetching des données
et bien plus encore (documentation)
Nous avons trouvé SWR super agréable à utiliser et nous envisagerons clairement de l’employer sur de futurs projets. Si vous souhaitez en savoir plus sur cette excellente bibliothèque, consultez leur site officiel avec documentation, configurations et exemples ici.
Bon code !

Digital Transformation Strategy for Siemens Finance
Cloud-based platform for Siemens Financial Services in Poland


Vous aimerez peut-être aussi...

Comment générer un PDF à partir de code HTML dans une application React ou Node.js
Générer des PDF à partir de HTML peut s’avérer délicat, mais avec les bonnes méthodes, vous pouvez obtenir les résultats souhaités. Explorez différentes solutions, des règles CSS d’impression aux bibliothèques comme html2canvas, jsPDF et Puppeteer. Comprenez les avantages et les inconvénients de chaque approche pour trouver la meilleure solution pour votre projet. Contactez‑nous à hello@start-up.house pour plus d’informations et d’assistance. Bonne chance dans vos projets de génération de PDF !
Eugene Zolotarenko
20 mai 2021・6 min de lecture

4 bonnes raisons d'utiliser Chakra UI dans votre prochain projet
Chakra UI est une bibliothèque de composants simple, modulaire et accessible pour créer des applications React rapidement. Grâce à sa facilité de personnalisation, à la prise en charge du mode sombre, à la prise en charge du responsive design et à son souci de l’accessibilité, Chakra UI se démarque des autres bibliothèques UI, ce qui en fait un excellent choix pour les développeurs React.
Mateusz Wójcik
19 janv. 2021・4 min de lecture
Récemment ajoutés

Gestion de l'infrastructure cloud
Ce qu’il faut pour exploiter une infrastructure cloud évolutive, sécurisée et à coûts maîtrisés — ses piliers essentiels, le FinOps, l’AIOps et comment choisir un partenaire.
Alexander Stasiak
12 juin 2026・8 min de lecture

Conformité de la sécurité cloud
Un guide étape par étape vers la conformité SOC 2, ISO 27001, RGPD et HIPAA dans le cloud — y compris le passage à la Compliance as Code pour passer à l’échelle en toute sécurité.
Alexander Stasiak
09 juin 2026・10 min de lecture

Analyse de données pour l'énergie solaire
La capacité photovoltaïque mondiale a dépassé 1 500 GW en 2025 et, avec des coûts des équipements à des niveaux historiquement bas, le prochain avantage compétitif ne consiste plus à installer davantage de panneaux, mais à tirer plus de valeur de ceux déjà en service. Les centrales solaires modernes génèrent des millions de points de données chaque jour via SCADA, des capteurs IoT, des API météo et des flux de marché, mais seuls les opérateurs dotés de la bonne couche d’analyse transforment ces données en gains de rendement, en baisse des coûts d’exploitation et de maintenance (O&M) et en une participation plus intelligente au marché. Ce guide détaille comment l’analyse de données transforme chaque étape du cycle de vie du photovoltaïque en 2026 — de la sélection de sites et la conception à la maintenance prédictive, l’intégration au réseau et la modélisation financière — avec des benchmarks concrets, des KPI et des calendriers de mise en œuvre.
Alexander Stasiak
03 mai 2026・8 min de lecture
Exemples de services à valeur ajoutée (SVA)
D’ici 2026, la plupart des services de base — forfaits data, comptes courants, hébergement cloud — seront entièrement banalisés, et les entreprises qui fidélisent le mieux ne sont pas celles qui cassent les prix. Ce sont celles qui ajoutent une couche intelligente de services à valeur ajoutée (VAS) : suivi de l’empreinte carbone dans les applications bancaires, packs maison connectée proposés par les fournisseurs d’accès à Internet (FAI), copilotes d’IA au sein des plateformes SaaS, et abonnements façon Amazon Prime qui transforment des acheteurs ponctuels en abonnés de long terme. Ce guide passe en revue des exemples concrets de VAS dans les télécoms, la banque, le retail et le SaaS, explique pourquoi les acteurs qui proposent des VAS observent une hausse de l’ARPU pouvant atteindre 30 %, et vous propose un cadre pratique en 5 étapes pour identifier les services à valeur ajoutée qui feront réellement la différence pour votre produit.
Alexander Stasiak
01 mai 2026・11 min de lecture

Cas d’usage des agents IA en 2026
Les agents IA ne sont plus une simple démo de recherche — ils consultent désormais l’historique client dans des CRM en production, surveillent des milliers de transactions par seconde pour détecter la fraude, rédigent des pull requests sur des bases de code en production et rééquilibrent des flottes logistiques sans intervention humaine. Le passage des chatbots réactifs à des agents autonomes, capables d’utiliser des outils et d’enchaîner plusieurs étapes, explique pourquoi 2024–2026 marque le point d’inflexion de l’adoption en entreprise. Ce guide détaille des cas d’usage concrets d’agents IA en service client, ventes et marketing, ingénierie logicielle, finance, logistique, santé, RH et retail — ainsi que les choix d’architecture, les pratiques de gouvernance et les conseils de mise en œuvre qui distinguent des agents prêts pour la production de simples prototypes astucieux.
Alexander Stasiak
29 avr. 2026・11 min de lecture

Rôles et responsabilités du Tech Lead
Le Tech Lead est devenu l’un des rôles les plus indispensables — et les plus mal compris — au sein des équipes de développement logiciel modernes. Souvent confondu avec les Engineering Managers, le Tech Lead est un contributeur individuel senior qui assume la direction technique, la qualité de livraison et la montée en puissance de l’équipe, tout en gardant les mains dans le code. Ce guide explique concrètement ce que recouvre le rôle en 2026 : responsabilités clés, compétences essentielles, journée type réaliste, comment il varie entre startups, grandes entreprises et agences, ainsi qu’une feuille de route pratique pour les ingénieurs prêts à y évoluer.
Alexander Stasiak
28 avr. 2026・12 min de lecture
Prêt à centraliser votre savoir-faire avec l'IA ?
Entrez dans un nouveau chapitre de la gestion des connaissances — où l'assistant IA devient le pilier central de votre expérience de support numérique.
Collaborez avec une équipe reconnue par des entreprises de premier plan.
Nous construisons ce qui vient ensuite.
Services




