Créé en 2013 par Facebook, React est une libraire de composants à la création de Single Page Applications (SPA). React se base sur un DOM Virutel afin d'optimiser les rendus successif de l'application suite aux changements des données. Le flux de données de react est unidirectionnel et descendant. La syntaxe JSX permet de rendre dynamique le HTML en y ajoutant du javascript dans le template !
Etant agnostique de l'implémentation choisie, React s'accompagne souvent d'autres librairies telles que React Router, Redux, ou Material-ui.
Au départ souvent utilisé uniquement côté navigateur ( Client-side Rendering), React est aujourd'hui utilisé également côté seveur pour améliorer les performances sur les appareils plus anciens mais également le référencement. D'autres modes de création avec react ont émergé tels que le SSG (Static Site Génerator) ou le SSR Hybride (SSR + SSG) avec des librairies comme Next.js mais également des CMS Headless tels que Gatsby
La documentation officielle est un bon départ !
La communauté de développeurs React est aussi très active :
Dan Abramov est un des Core Developers sur ReactJS, vous pourrez le retrouver sur son blog
Parmi les développeurs Français, Sebastien Lorber, expert Ract et React Native, tient une newsletter. L'abonnement se passe ici !
Une bonne base en Javascript est essentielle. En effet, le JSX se repose lourdement sur le Javascript et sa syntaxe, notemment ES6, l'API Array (map, filter, reduce) et la destructuration des objets pour la lisibilité. Comprendre le HTML et le CSS sont utiles mais des librairies peuvent vous aider à créer des composants et les styliser plus rapidement. Dans les librairies de style on retrouve par exemple Tailwind, ou encore react-bootstrap et Semantic UI