React (JavaScript)

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
React
Développeur Facebook, Instagram et la communauté.
Première version 2013
Dernière version 16.0.0 ()[1],[2],[3]Voir et modifier les données sur Wikidata
Écrit en JavaScript
Environnement MultiplateformeVoir et modifier les données sur Wikidata
Type Bibliothèque JavaScript
Licence MIT
Site web reactjs.com

React (aussi appelé React.js ou ReactJS) est une bibliothèque JavaScript libre développée par Facebook depuis 2013. Le but principal de cette bibliothèque est de faciliter la création d'application web monopage, via la création de composants dépendant d'un état et générant une page (ou portion) HTML à chaque changement d'état.

React est une bibliothèque qui ne gère que l'interface de l'application, considéré comme la vue dans le modèle MVC. Elle peut ainsi être utilisée avec une autre bibliothèque ou un framework MVC comme AngularJS. La bibliothèque se démarque de ses concurrents par sa flexibilité et ses performances, en travaillant avec un DOM virtuel et en ne mettant à jour le rendu dans le navigateur qu'en cas de nécessité[4].

La bibliothèque est utilisée notamment par Netflix[5], Yahoo[6], Airbnb[7], Sony[8], Atlassian[9] ainsi que par les équipes de Facebook, appliquant le dogfooding sur le réseau social éponyme, Instagram ou encore WhatsApp[4]. En fin 2015, WordPress.com annonce Calypso, une interface pour les administrateurs WordPress, développée en JavaScript avec node.js et React[10].

Historique[modifier | modifier le code]

React est créé par Jordan Walke, un ingénieur au sein de la société Facebook à la fin de l'année 2011. Pete Hunt, ingénieur travaillant sur Instagram est intéressé par la bibliothèque et assiste Walke afin de retirer les portions dépendantes de Facebook. Ceci permet à React d'être publié sous licence Apache 2.0 le . React s'inspire de XHP (en), une librairie également développée par Facebook, permettant l'inclusion de HTML au sein de PHP[11],[12],[13].

En , la version 0.12.0 est publiée sous licence BSD modifiée, avec une note associée PATENTS permettant l'utilisation des brevets de Facebook associé à React[14]. Cependant, la licence BSD est mis à jour en , avec la version 0.13.1, pour éviter les confusions[15].

Le 26 septembre 2017, React 16.0.0 a été publié sous la licence MIT[16]. Ce changement porte aussi sur la version 15.x avec React 15.6.2[17].

Fonctionnalités[modifier | modifier le code]

React a été conçu comme étant une bibliothèque et non un framework MVC, comme peuvent l'être ses concurrents[18]. Ainsi, React encourage la création de composants réutilisables, avec en entrée des données, pouvant changer au cours du temps[18].

Par ailleurs, React n'utilise pas de système de templates et ne fonctionne qu'avec du Javascript, permettant une encapsulation complète du composant au sein d'une unique classe[18]. Pour faciliter l'écriture de la vue, l'équipe initiale chez Facebook a développé un langage, JSX, qui permet de générer des objets Javascript avec une notation similaire à HTML[19].

DOM virtuel[modifier | modifier le code]

Un DOM Virtuel est une représentation du DOM en JavaScript. Au lieu de générer le DOM lui meme comme avec un langage de templating, c'est-à-dire au lieu de dialoguer avec les API du navigateur pour construire le DOM, on ne génère qu'une arborescence d'objets JavaScript en mémoire[20].

Notes et références[modifier | modifier le code]

  1. https://github.com/facebook/react/releases/tag/v16.0.0
  2. https://facebook.github.io/react/blog/2017/09/26/react-v16.0.html
  3. https://api.github.com/repos/facebook/react/releases
  4. a et b (en) Eric Baer, « Using React is a Business Decision, Not a Technology Choice », sur Medium, (consulté le 21 décembre 2015).
  5. « React.js conf - schedule », sur React.js
  6. « Yahoo Mail moving to React », sur Slideshare
  7. (en) « Dev Chats: Spike Brehm of Airbnb - JavaScript development without a "greenfield app" », sur Medium,
  8. « Mikael Brassman on Twitter: "Sony's Lifelog newly released web interface is using #refluxjs and #reactjs on the client-side" », sur Twitter,
  9. « Wesley Walser on Twitter: "React.js is now driving @atlassian OnDemand billing pages. Small project to start adoption, positive experiences thus far." », sur Twitter,
  10. (en) Matt Mullenweg, « Dance to Calypso », sur ma.tt, (consulté le 16 mars 2017).
  11. (en) Bill Fisher, « How was the idea to develop React conceived and how many people worked on developing it and implementing it at Facebook? », (consulté le 21 décembre 2015).
  12. (en) Paul Krill, « React: Making faster, smoother UIs for data-driven Web apps », (consulté le 6 avril 2015)
  13. « Releases - facebook/react », sur github.com (consulté le 6 avril 2015)
  14. « README.md », .
  15. (en) « Updating Our Open Source Patent Grant », (consulté le 21 décembre 2015).
  16. « React v16.0 », React Blog,‎ (lire en ligne)
  17. « React v15.6.2 », React Blog,‎ (lire en ligne)
  18. a, b et c (en) Pete Hunt, « Why did we build React? », sur facebook.github.io, (consulté le 6 avril 2015)
  19. (en) « JSX in Depth », sur facebook.github.io (consulté le 6 avril 2015)
  20. https://anybox.fr/blog/appli-web-histoire-du-dom-react-redux