codelynx.dev
Posts 🇫🇷Posts 🇬🇧

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 :

La landing page de React met en avant que c'est 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 ou Link
  • 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 le use server
  • il fournit des outils comme 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.

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 ?

Cours React gratuit

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