React est un framework ou une librairie ?
15/09/2024 • Melvynx
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 :
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.
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 :
Si on prend comme exemple NextJS dont j'ai fait une formation ici, tu peux voir que :
app
headers
, cookies
ou Link
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.
"use client"
Server Action
et le use server
useState
et useEffect
Il est donc "possible" d'utiliser React
comme un framework, et plus comme une simple librairie qu'on vient ajouter sur un projet existant.
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 ?