Il s'agit d'une version statique de l'intranet d'A. Jonquet, certaines fonctionnalités sont donc potentiellement non fonctionnelles.
Rejoindre la version dynamique 🔒
React
Navigation

Mise en place du projet

Ce TP va servir de rappel rapide aux concepts de React. L'objectif sera de mettre en place le projet pour la suite des TP. L'objectif final étant de travailler sur une application de gestion des tâches collaborative.

Remarque importante

Les notes des TP seront obtenues à partir de vos dépôts Git, vous devrez donc prendre grand soin de la qualité de ces dépôts et de leurs « commits ».

De manière similaire, les descriptions de vos « commits » devront être claires et informatives, afin de permettre l'évaluation de la progression de votre travail.

Objectifs de la séance

  • Mise en place d'un environnement de travail React
  • Rappel des concepts de React
  • Introduction à l'utilisation d'une bibliothèque de composants
  • Gestion d'un thème clair/sombre

Initialisation du projet React

Comme pour le semestre précédent, vous allez initialiser votre projet à l'aide de l'outil vite.

Vous pourrez ensuite réaliser un peu de néttoyage pour ne conserver que le minimum nécessaire dans votre projet.

Vous finaliserez la mise en place du projet en créant un dépôt Git local dans le répertoire r505-react. Vous créerez alors un dépôt distant associé, nommé r505-react, puis vous réaliserez votre premier commit.

Vous penserez à ajouter votre intervenant de TP comme membre du dépôt distant, avec un rôle au moins de Reporter.

Travail à réaliser
  • Initialiser du projet.
  • Nettoyer du projet.
  • Mise en place du versionnage du projet et de la sauvegarde (r505-react).

Qualité de code : eslint et Prettier

Vous installerez et configurerez les outils de qualité de code eslint et Prettier afin d'améliorer la qualité du code de votre projet.

Vous ajouterez ensuite un script npm permettant de tester la qualité de votre code.

Vous vous assurerez aussi de l'intégration de ces outils dans votre IDE afin d'améliorer votre expérience de développement.

Dans la suite des TP de ce module, vous vous assurerez que vos commits soient toujours valide au vu des outils de qualité de code.

Si vous le souhaité, un outil similaire à GrumPHP existe pour l'écosystème JavaScript, il s'agit de husky, vous pouvez l'utiliser pour vous assurer d'exécuter le script npm avant chaque commit, mais la configuration correcte de votre IDE devrait suffire.

Travail à réaliser
  • Mise en place d'eslint et Prettier.
  • Configuration du projet.
  • Configuration de l'IDE.

Ajout d'une bibliothèque de composants

Afin de ne pas perdre trop de temps à créer des composants d'affichage, vous allez utiliser une des nombreuses bibliothèques de composants utilisées par la communauté React : MUI.

Vous installerez cette bibliothèque conjointement à Emotion, une bibliothèque de gestion du CSS dans le JavaScript.

En vous familiarisant avec la documentation, vous créerez trois composants :

  • Header, l'en-tête contenant le titre de l'application
  • Footer, le pied de page contenant deux boutons :
    • un bouton de changement de mode pour le thème (clair/sombre)
    • un bouton d'affichage des notifications
  • Main, la zone d'affichage principale contenant quatre boutons :
    • un bouton permettant plus tard de créer une notification d'erreur
    • un bouton permettant plus tard de créer une notification d'avertissement
    • un bouton permettant plus tard de créer une notification d'information
    • un bouton permettant plus tard de créer une notification de succès

Pour l'instant aucune action n'est attachée aux boutons, vous vous focaliserez pour l'instant sur la structuration de l'application. Vous devriez obtenir une organisation similaire à l'illustration suivante :

Pour le thème de votre application, vous pouvez utiliser le générateur de thème.

Pour la mise en forme de votre application, vous êtes invités à utiliser les composants de mise en forme de la bibliothèque. Et pour les besoin spécifique de votre application, vous prendrez soin de comprendre l'utilisation de la propriété de style des composants MUI : la prop sx.

Remarque importante

Sauf indication particulière, vous êtes maintenant responsable de l'organisation de votre base de code et la qualité de cette organisation fera partie de l'évaluation du module.

Vous prendrez donc soin de découper votre code en plusieurs fichiers et d'organiser ces fichiers dans une arborescence adaptée.

Travail à réaliser
  • Installation de la bibliothèque MUI.
  • Réalisation de la base de l'application.
  • Mise en place d'un thème pour l'application.

Gestion du thème

Pour finir, afin de reprendre en main la gestion de données et de l'interaction en React, vous allez maintenant gérer le basculement de l'application en thème clair ou sombre lors de l'appuie sur le bouton dans le pied de page.

Vous commencerez par créer un nouveau hook personnaliser appelé useTheme, dont le rôle sera de définir et fournir le thème fournit à votre application.

Dans ce hook, vous ajouterez une variable d'état permettant d'identifier si le thème employé est clair ou foncé, que vous initialiserez avec le thème du navigateur. Cette variable, ainsi que sa fonction de modification, seront exposées par votre hook personnalisé.

Vous pourrez alors rendre actif le bouton de modification du thème du pied de page de votre application afin d'obtenir des rendus similaires à l'illustration suivante :

Travail à réaliser
  • Ajout d'un hook personnalisé pour gérer le thème.
  • Gérer le basculement entre les thèmes clair et sombre.
A. Jonquet DUT-INFO/REIMS