React
Créateur | Meta Platforms |
---|---|
Développé par | Metaet la communauté |
Première version | |
Dernière version | 18.3.1 ()[1] |
Version avancée | 19.0-beta |
Dépôt | https://github /facebook/react |
Écrit en | JavaScript |
Système d'exploitation | Multiplateforme |
Type | Bibliothèque JavaScript |
Licence | Licence MIT |
Documentation | reactjs.org/docs/getting-started.html,ru.reactjs.org/docs/getting-started.htmletar.reactjs.org/docs/getting-started.html |
Site web | react.dev |
React(aussi appeléReact.jsouReactJS) est une bibliothèqueopen sourceJavaScriptpour créer des interfaces utilisateurs. Elle est maintenue parMeta(anciennementFacebook) ainsi que par une communauté de développeurs individuels et d'entreprises depuis2013.
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.
Reactest une bibliothèque qui ne gère que l'interface de l'application, cette interface étant considérée comme la vue dans le modèleMVC.Elle peut ainsi être utilisée avec une autre bibliothèque ou unframeworkMVC commeAngularJS.La bibliothèque se démarque de ses concurrents par sa flexibilité et ses performances, en travaillant avec unDOMvirtuel et en ne mettant à jour le rendu dans le navigateur qu'en cas de nécessité[2].
Historique
[modifier|modifier le code]React a été créé par Jordan Walke, un ingénieur chezMeta.Jordan Walke a d'abord développé un prototype nommé« FaxJS »[3],[4].Il a été déployé pour la première fois sur le fil d'actualité deFacebooken 2011.
React s'inspire deXHP(en),une bibliothèque également développée parMeta,permettant l'inclusion de HTML au sein dePHP[5],[6].
Pete Hunt, ingénieur travaillant surInstagramest intéressé par la bibliothèque et assiste Walke afin de retirer les portions dépendantes de Facebook. Ceci permet à React d'être publié souslicence Apache 2.0le.
En,la version 0.12.0 est publiée souslicence BSD modifiée,avec une note associéePATENTSpermettant l'utilisation des brevets de Facebook associé à React[7].Cependant, la licence BSD est mise à jour en,avec la version 0.13.1, pour éviter les confusions[8].
React Nativeest annoncé en Février 2015 et disponible en version open source en Mars 2015. Ce framework est basé sur React et permet de créer, toujours enJavascript,des applications multi-plateformesAndroidetiOS[9].
Le,React 16.0 a été publié sous lalicence MIT[10].Ce changement porte aussi sur la version 15.x avec React 15.6.2[11].
La version 17.0 est publiée le 20 octobre 2020, première version majeure sans nouvelle fonctionnalité majeure[12].
La React 18 est publié le 29 mars 2022, introduisant un nouveau moteur de rendu concurrent, le traitement par lots côté serveur, le rendu streamé côté serveur prenant pleinement en charge Suspense[13].
La version 19 est annoncée le 25 avril 2024 et est disponible en beta[14].Elle propose des améliorations[15]importantes comme le rendu côté serveur, déjà utilisé parNextJS.
Fonctionnalités
[modifier|modifier le code]React a été conçu comme étant une bibliothèque et non un frameworkMVC,comme peuvent l'être ses concurrents[16].Ainsi, React encourage la création de composants réutilisables, avec en entrée des données, pouvant changer au cours du temps[16].
Par ailleurs, React n'utilise pas de système de templates et ne fonctionne qu'avec duJavaScript,permettant une insertion complète du composant au sein d'une unique classe[16].Pour faciliter l'écriture de la vue, l'équipe initiale chezFacebooka développé un langage,JSX,qui permet de générer des objets Javascript avec une notation similaire à HTML[17].
DOM virtuel
[modifier|modifier le code]Un DOM Virtuel est une représentation duDOMenJavaScript.Au lieu de générer leDOMlui-même 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[18],répercutée auprès du navigateur quand opportun.
Adoption et Utilisation
[modifier|modifier le code]La bibliothèque est utilisée parNetflix[19](depuis le,une migration de la partie client vers du JavaScript pur a permis d'augmenter les performances de 50 %[20]),Yahoo[21],Airbnb[22],Sony[23],Atlassian[24].
Les équipes deMetapratiquentl'autoéquipementsur les réseaux sociaux Facebook,Instagramou encoreWhatsApp[2].
À la fin de 2015,WordPressannonce Gutenberg, une interface pour les éditeurs de sites WordPress, développée en JavaScript avecNode.jset React[25],[26].
Notes et références
[modifier|modifier le code]- «https://registry.npmjs /react»
- (en)Eric Baer, «Using React is a Business Decision, Not a Technology Choice», surMedium,(consulté le).
- (en)Jordan Walke, «Page GitHub de FaxJs»,(consulté le).
- (en-US)FerencHámori,«The History of React.js on a Timeline», surRisingStack Engineering,(consulté le).
- (en)Paul Krill, «React: Making faster, smoother UIs for data-driven Web apps»,(consulté le).
- «Releases - facebook/react», surgithub(consulté le).
- «README.md»,.
- (en)«Updating Our Open Source Patent Grant»,(consulté le).
- (en)«React Native Learn once, write anywhere.», surReact Native(consulté le).
- «React v16.0»,React Blog,(lire en ligne,consulté le).
- «React v15.6.2»,React Blog,(lire en ligne,consulté le).
- (en)«React v17.0 – React Blog», surlegacy.reactjs.org(consulté le)
- «React v18.0 – React», surfr.react.dev(consulté le)
- (en)«React 19 RC – React», surreact.dev(consulté le)
- Louis-NicolasLeuillet,«Les nouveautés de React 19», surbelievemy,(consulté le)
- (en)Pete Hunt, «Why did we build React?», surfacebook.github.io,(consulté le).
- (en)«JSX in Depth», surfacebook.github.io(consulté le).
- Christophe Combelles, «Une brève histoire du DOM (jusqu’à React et Redux)», surgorfou.fr,(consulté le).
- «React.js Conf 2015», surYoutube,.
- «Netflix UI Engineers on Twitter», surTwitter(consulté le).
- «Yahoo Mail moving to React», surSlideshare.
- (en)«Dev Chats: Spike Brehm of Airbnb - JavaScript development without a "greenfield app"», surMedium,.
- «Mikael Brassman on Twitter: "Sony's Lifelog newly released web interface is using #refluxjs and #reactjs on the client-side"», surTwitter,.
- «Wesley Walser on Twitter: "React.js is now driving @atlassian OnDemand billing pages. Small project to start adoption, positive experiences thus far."», surTwitter,.
- «La nouvelle expérience d'édition Gutenberg», surLa nouvelle expérience d'édition Gutenberg(consulté le).
- (en-US)«WordPress 5.0 “Bebo”», surWordPress News,(consulté le).