Introduction
- Rappels sur ES6+ et les modules.
- Les principes clés de React : VirtualDOM, JSX, One-way Data Flow.
- Découvrir l’écosystème des outils ReactJS.
Travaux pratiques
Mise en place d'un environnement de développement optimisé pour React et d'une première application web qui servira de fil rouge pour les chapitres suivants.
Bonnes pratiques de développement
- Rappels de productivité : prop-types et DefaultProps, component sheet avec StoryBook.
- Typage du code avec flow ou TypeScript.
- Prototyper rapidement un composant, solutions.
- Mettre en place des tests unitaires et fonctionnels.
Travaux pratiques
Amélioration de la qualité de l'application grâce au typage et aux tests automatisés.
Techniques et design patterns avancés
- Le pattern des higher order components (HOC).
- Le rendu dans des éléments DOM distants avec les portals.
- Injection de dépendances avec les contexts.
- "React hooks" programmation fonctionnelle : useEffect, useState.
- React : création de "customHooks" pour distribuer une logique personnalisée.
Travaux pratiques
Mise en œuvre des contexts et des portals dans l'application fil rouge. Création de composants fonctionnels et utilisation des hooks.
Redux avancé
- Rappels Redux : les différentes entités, la syntaxe de base et l'intégration avec React.
- Simplifier et optimiser la création de formulaires avec Redux Form.
- Améliorer l'expérience utilisateur grâce à Redux Persist et au stockage local du state.
- Créer un middleware Redux Custom.
Travaux pratiques
Conversion d'un formulaire à Redux Form et sauvegarde de la navigation.
Optimisation des performances
- API pour l’optimisation React.Suspense React.Lazy, mode concurrent et React.Cache.
- Server side rendering avec NextJS.
- Comment optimiser le cycle de vie des composants ?
- Utiliser l'immutabilité pour accélérer et simplifier les traitements.
- Les composants purs.
Travaux pratiques
Mise en œuvre du code splitting avec React.Lazy et Suspense.
Animations/transitions
- Animer les composants "à la main" à l'aide d'animations et transitions CSS.
- Simplifier le travail avec React Transition Group.
- Aller plus loin avec les principales librairies d'animation : comparatif et exemples de mise en œuvre.
Travaux pratiques
Ajout de transition d'apparition/disparition des différents écrans.
L'internationalisation
- Internationalisation versus localisation : différences et scénarios d'utilisation.
- Les principales librairies d'internationalisation.
- Intégration dans React et Redux.
Travaux pratiques
Traduction de l'application fil rouge et gestion du changement de langue.