Skip to content

9. Conclusion intermédiaire

Les vingt-cinq exemples ont présenté les notions dont nous avons besoin pour écrire le client [RdvMedecins] :

Notion
Utilisation dans l'étude de cas
composants, props, fonctions en props, [children]
la barre de navigation, les champs de formulaire, les fenêtres
[useState], valeurs calculées, [useEffect]
toutes les pages ; l'agenda qui suit son adresse
champs contrôlés, validation par le serveur
la connexion, les fiches des médecins et des clients, la création d'un compte, le compte de l'utilisateur
fonctions de mise en forme, [Intl]
la mise en forme des dates, des horaires, des noms
hooks personnalisés
l'envoi des formulaires, le captcha
magasins [Zustand]
l'utilisateur connecté, les messages, la fenêtre de confirmation
[React Router] et ses gardes
les pages, les droits de chaque rôle, la session à rétablir après F5
[i18next]
le français et l'anglais, et la traduction des erreurs du serveur
[fetch], cookie httpOnly, proxy
la connexion, la session expirée, tous les échanges avec le serveur
la couche d'accès à l'API, [TanStack Query]
un fichier [rdvmedecins.api.ts], une fonction par route ; la lecture et le cache des données

Le client sera l'exact équivalent de l'application HTML du cours [NestJS], page pour page. La différence est ailleurs : le serveur ne fabrique plus aucune page, il répond en JSON, et tout ce qui touche à l'affichage (les pages, la langue, la mise en forme des dates, les messages) s'est déplacé dans le navigateur.