Retour • 15/09/2024
React est un framework ou une librairie ?
Écris par Melvyn Malherbe le 15/09/2024
React est-il un framework ou une librairie ?
C'est la question qu'on est beaucoup à se poser et beaucoup de personnes me reprennent souvent pour me dire que c'est une librairie.
Alors que moi, je le considère comme un framework.
Pourtant, React lui-même se considère comme une librairie :
C'est quoi une librairie ?
Une librairie est un ensemble d'outils que tu peux intégrer dans ton projet.
Par exemple, l'utilitaire next-zod-route
que j'ai créé est une librairie.
Tu peux l'ajouter à ton projet et l'utiliser si tu le veux et comme tu le veux.
Il ne vient pas définir de "règles" par rapport à comment est écrit ton projet.
La majorité des outils qu'on installe via NPM sont considérés comme des librairies :
clsx
framer-motion
react-hook-form
Tu peux voir une librairie comme des compléments alimentaires, tu peux les prendre, ou pas, et tu peux le faire à peu près comme tu veux.
C'est quoi un framework ?
Un framework est un ensemble de composants, de règles et des librairies pré-définis qui fournissent une structure de base pour le développement de ton application.
Tu peux le reconnaître car :
- il impose une architecture et des conventions spécifiques
- il fournit des utilitaires et des librairies pré-définis
- il facilite la collaboration avec des règles spécifiques
Si on prend comme exemple NextJS dont j'ai fait une formation ici, tu peux voir que :
- il impose une architecture avec le dossier
app
- il fournit des outils comme
headers
,cookies
ouLink
- il facilite la collaboration avec des règles que tout le monde suit
React est un framework ou une librairie ?
Maintenant, quand on parle de React, c'est assez flou.
Si React
est considéré comme une librairie, c'est car il est possible de l'utiliser dans un projet PHP
, Ruby
ou autre.
Mais avec les récentes mises à jour, j'ai l'impression que React
est souvent utilisé comme un framework.
- Il impose des règles avec le
"use client"
- Il crée des architectures avec les
Server Action
et leuse server
- il fournit des outils comme
useState
etuseEffect
Il est donc "possible" d'utiliser React
comme un framework, et plus comme une simple librairie qu'on vient ajouter sur un projet existant.
Conclusion
Après avoir vu tout ça, que peut-on penser de React
?
Ma réponse est que ça dépend de l'usage.
Certains développeurs, par exemple avec Laravel
vont venir utiliser React
comme une librairie qu'on vient juste rajouter pour 2-3 fonctionnalités compliquées de notre frontend.
Au contraire, d'autres développeurs vont l'utiliser avec NextJS
ou d'autres outils et l'utiliseront comme un framework avec toutes ces règles.
C'est à cause de ça que je ne considère pas React
comme une simple librairie, comparable à clsx
ou framer-motion
.
Mais plutôt comme une "super-librairie" comparable à des frameworks.
Qu'en penses-tu ?