Présentation

React est une bibliothèque JavaScript open source destinée à la création d’interfaces utilisateur.

Elle repose sur une architecture composée de petits éléments réutilisables appelés composants. Chaque composant décrit une partie de l’interface et peut recevoir des données, gérer son propre état et être combiné avec d’autres composants.

React est principalement utilisé pour les applications Web avec React DOM, mais son modèle de composants peut également servir à construire des interfaces natives via des projets comme React Native.

Contrairement à Angular, React ne fournit pas à lui seul un framework complet comprenant automatiquement routing, accès aux données ou architecture backend. Son écosystème complète ces besoins avec des frameworks et bibliothèques spécialisés.

Depuis février 2026, React, React Native et JSX appartiennent à la React Foundation, fondation indépendante hébergée par la Linux Foundation. Meta reste contributeur au projet mais n’en est plus propriétaire.

Au 3 octobre 2026, React 19.3.0 constitue la version stable actuelle.

Fonctionnalités

Composants

Une application React est construite à partir de composants.

Un composant est généralement une fonction JavaScript qui reçoit des données et retourne la description de l’interface à afficher.

Les composants peuvent être imbriqués et réutilisés afin de construire progressivement une interface complexe.

React continue de prendre en charge les anciens composants basés sur des classes, mais les composants fonctionnels sont recommandés pour le nouveau code.

JSX

React utilise couramment JSX, une syntaxe permettant d’écrire une structure proche du HTML directement dans le code JavaScript.

JSX facilite la description de l’interface et l’insertion de valeurs ou expressions JavaScript dans le rendu.

Il n’est pas techniquement obligatoire pour utiliser React, mais constitue l’approche standard dans la majorité des projets.

Les outils de build transforment ensuite JSX en instructions JavaScript comprises par React.

Props et state

Les props permettent de transmettre des données d’un composant à un autre.

Le state représente les informations internes susceptibles d’évoluer pendant l’utilisation de l’interface.

Lorsqu’un état change, React recalcule les composants concernés et met à jour le rendu nécessaire.

Cette approche déclarative permet de décrire ce que l’interface doit afficher pour un état donné plutôt que de manipuler manuellement chaque modification du DOM.

Hooks

Les Hooks permettent aux composants fonctionnels d’utiliser différentes fonctions de React.

useState gère un état local, useEffect synchronise un composant avec un système externe et useContext permet de lire une valeur partagée.

D’autres Hooks couvrent références, performances, transitions ou intégration avec des stores externes.

React impose certaines règles d’utilisation des Hooks afin que leur ordre reste prévisible entre les rendus.

Context

Context permet de rendre une information disponible à plusieurs composants sans la transmettre manuellement à travers chaque niveau de l’arborescence.

Il peut convenir à des données partagées comme le thème, la langue ou certaines informations de session.

Context n’est toutefois pas nécessairement un remplacement complet d’un système de gestion d’état spécialisé pour les applications possédant des besoins plus complexes.

Suspense et transitions

React comprend plusieurs mécanismes permettant de coordonner les mises à jour d’interface.

Suspense peut afficher un contenu de remplacement pendant qu’une ressource ou une portion de l’interface attend d’être prête.

Les Transitions permettent de distinguer les mises à jour urgentes de celles qui peuvent être traitées en arrière-plan sans bloquer certaines interactions.

Ces fonctions sont particulièrement utiles avec les frameworks modernes qui coordonnent rendu serveur, chargement des données et navigation.

React DOM

React DOM fournit les API spécifiques aux applications Web.

react-dom/client permet d’afficher et d’hydrater une application dans le navigateur.

Les API serveur peuvent produire du HTML depuis des composants React, notamment sous forme de flux.

React propose également des API statiques pour générer du HTML à l’avance.

Ces fonctions constituent la base sur laquelle les frameworks React construisent leurs stratégies CSR, SSR ou génération statique.

Server Components

Les React Server Components permettent d’exécuter certains composants avant leur arrivée dans le navigateur.

Un Server Component peut notamment accéder directement à des données ou fichiers côté serveur puis transmettre le résultat à des composants interactifs.

Comme son code n’est pas envoyé au navigateur, il ne peut pas utiliser directement des fonctions interactives comme useState.

Server Components et Client Components peuvent être combinés dans la même arborescence par les frameworks compatibles.

Les Server Components sont stables dans React 19, mais leur intégration complète dépend encore fortement du framework et du système de build utilisés.

Server Functions

Les Server Functions permettent à des composants client de déclencher des fonctions asynchrones exécutées côté serveur.

La directive "use server" permet aux frameworks compatibles d’identifier ces fonctions et de générer la communication nécessaire entre navigateur et serveur.

Lorsqu’une Server Function est utilisée comme action, elle peut notamment traiter l’envoi d’un formulaire ou une mutation.

Ces fonctions font partie de l’architecture full-stack moderne de React mais nécessitent une intégration fournie par le framework.

React Compiler

React Compiler est un outil d’optimisation exécuté pendant la compilation.

Il analyse les composants et Hooks afin de mémoriser automatiquement certaines valeurs ou portions de calcul qui auraient auparavant nécessité davantage de useMemo, useCallback ou optimisations manuelles.

Le compilateur est désormais stable et reste optionnel.

Il est conçu principalement pour React 19 mais peut également fonctionner avec React 17 et 18 grâce à un runtime de compatibilité.

Son intégration est possible avec plusieurs environnements de build, notamment Babel, Vite, Metro et Rsbuild.

View Transitions

React 19.3 stabilise le composant <ViewTransition>.

Il permet de coordonner des animations lorsqu’un élément apparaît, disparaît, change de position ou de contenu en s’appuyant sur les View Transitions du navigateur.

Cette fonction peut être associée à Suspense et aux transitions React pour créer des changements d’interface plus fluides.

Dans React 19.3, cette fonctionnalité concerne actuellement React DOM.

Fragment Refs

React 19.3 stabilise également les Fragment Refs.

Une référence peut désormais cibler un Fragment afin d’effectuer certaines opérations portant sur plusieurs éléments DOM regroupés logiquement sans introduire un élément HTML supplémentaire.

Cette fonction facilite certains besoins liés aux mesures, événements, focus ou observations lorsque plusieurs éléments appartiennent à la même portion d’interface.

Frameworks React

La documentation officielle recommande désormais de démarrer une nouvelle application React avec un framework lorsque le projet dépasse une simple interface isolée.

Les solutions recommandées incluent notamment Next.js avec App Router et React Router en mode framework pour le Web, ainsi qu’Expo pour les applications natives.

Ces frameworks ajoutent routing, récupération des données, stratégies de rendu et infrastructure nécessaires aux applications complètes.

Pour les projets ayant des besoins particuliers, React peut toujours être installé directement avec des outils comme Vite, Parcel ou Rsbuild.

Create React App

Create React App est déprécié et n’est plus recommandé pour créer de nouveaux projets.

Les nouveaux projets doivent utiliser un framework recommandé ou une configuration moderne construite avec un outil de build adapté.

Les applications existantes utilisant Create React App peuvent continuer à fonctionner, mais une migration peut devenir pertinente lorsque le projet évolue.

React et TypeScript

React est développé autour de JavaScript mais fonctionne très bien avec TypeScript.

Les props, états, événements et composants peuvent recevoir des types qui améliorent l’autocomplétion et la détection d’erreurs.

TypeScript n’est cependant pas obligatoire et ne fait pas partie directement du runtime React.

Son utilisation dépend du projet et de la toolchain choisie.

Cas d’usage

Construire une interface Web interactive

React convient aux interfaces comprenant composants dynamiques, formulaires, recherches, tableaux de bord et interactions fréquentes.

Le state et les Hooks permettent de synchroniser l’affichage avec les actions de l’utilisateur.

Développer une SPA

Associé à un routeur et à un outil de build, React peut servir de base à une application monopage.

Seules les portions nécessaires de l’interface sont mises à jour pendant la navigation.

Créer une application full-stack

Un framework React peut ajouter rendu serveur, Server Components, accès aux données, routing et actions serveur.

React sert alors de couche d’interface dans une architecture couvrant à la fois navigateur et serveur.

Construire un design system

La logique de composants réutilisables convient particulièrement aux bibliothèques d’interface.

Boutons, formulaires, modales, cartes et autres composants peuvent être centralisés puis utilisés par plusieurs applications.

Développer pour plusieurs plateformes

Les concepts et modèles de programmation React peuvent également être utilisés avec React Native.

Une équipe peut ainsi conserver une partie de ses connaissances et de son architecture de composants entre Web et applications natives, même si le rendu et certaines API diffèrent.

Conclusion

React propose une approche centrée sur des composants déclaratifs et réutilisables pour construire des interfaces.

Hooks, Context, Suspense et transitions couvrent les principaux besoins liés à l’état et au rendu interactif, tandis que React DOM relie ces composants au Web.

Server Components et Server Functions étendent désormais son architecture vers le serveur, et React Compiler automatise une partie des optimisations autrefois réalisées manuellement.

React reste cependant volontairement moins prescriptif qu’un framework comme Angular. Routing, stratégie de données et architecture complète dépendent souvent d’un framework ou de bibliothèques complémentaires.

Cette flexibilité constitue à la fois une force et une difficulté : l’écosystème offre de nombreuses possibilités, mais nécessite davantage de choix techniques.

Pour construire des interfaces Web modernes, des design systems ou des applications complètes à l’aide d’un framework React, la bibliothèque reste l’une des bases majeures du développement frontend.

Points d’attention

  • React 19.3.0 est la version stable actuelle au 3 octobre 2026.

  • React appartient désormais à la React Foundation, fondation indépendante hébergée par la Linux Foundation. Meta reste l’un des contributeurs et membres fondateurs, mais n’est plus propriétaire du projet.

  • React est gratuit et open source sous licence MIT, y compris pour un usage commercial.

  • React est une bibliothèque et non un framework Web complet. Routing, data fetching et architecture d’application nécessitent généralement un framework ou des bibliothèques complémentaires.

  • La documentation officielle recommande désormais un framework pour démarrer la plupart des nouvelles applications React.

  • Create React App est déprécié et ne doit plus servir de choix par défaut pour les nouveaux projets.

  • React Server Components sont stables dans React 19, mais les API utilisées par les auteurs de frameworks et bundlers pour les implémenter ne suivent pas encore complètement Semantic Versioning entre les versions mineures de React 19.

  • Server Components nécessitent une architecture compatible. Ils ne deviennent pas automatiquement disponibles simplement en installant le paquet React dans une application frontend classique.

  • React Compiler est stable mais optionnel. Une application React peut continuer à fonctionner sans l’utiliser.

  • Les composants basés sur des classes restent pris en charge, mais React recommande les composants fonctionnels pour le nouveau code.

  • JSX n’est pas obligatoire, même s’il constitue la syntaxe utilisée dans la majorité des projets React.

  • React ne remplace pas React Native. Les deux projets partagent le modèle de programmation React, mais utilisent des systèmes de rendu différents pour le Web et les plateformes natives.

  • Les bibliothèques tierces ont leur propre calendrier et leurs propres licences. Leur compatibilité avec les nouvelles versions de React doit être vérifiée avant une mise à niveau importante.