Le but de ce projet est de vous faire refaire l'exercice de la ToDoList mais cette fois en utilisant les reducers. Votre projet, visuellement va ressembler à ceci :
Étape 0 : Préparer le projet
Créez un repository public avec un README sur GitHub, appelez-le bre05-react-j7
Clonez-le dans le dossier sites/react de votre IDE.
Dans le dossier bre05-react-j7:
Créez un projet appelé todo-list avec npm-create-vite
Videz le fichier src/index.css
Remplacez le code du fichier App.css avec le code suivant :
Essayez, à partir de ce HTML de déduire la liste des composants dont vous aurez besoin. Une fois que vous pensez avoir votre liste, envoyez-moi un message sur Discord pour que l'on valide ensemble.
Étape 2 : déterminer quel composant a besoin d'un state
Pour chacun de vos composants, déterminez s'il a besoin d'un state et si oui, ce que ce state doit contenir.
Pour déterminer si un composant a besoin d'un state, il faut regarder s'il y a des données qui changent dans le composant et qui doivent être gardées entre les rendus. Si ces données changent, c'est un state, sinon ce sont des props.
Étape 3 : déterminer les actions des composants
Pour chacun de vos composants, vous allez devoir déterminer quelles actions il peut faire : peut-il modifier le state ? Si oui comment ?
Étape 4 : créer le reducer
Maintenant que nous connaissons la structure du state et les actions qui peuvent intervenir dessus : nous pouvons créer notre reducer.
Dans un fichier src/listReducer.js, créez et exportez le reducer de votre To Do List.
Ensuite, utilisez useReducer pour utiliser votre reducer dans le composant approprié.
Étape 5 : passer les props aux composants
Vous allez maintenant devoir passer les bonnes informations à vos différents composants : transmettez les props aux composants qui en ont besoin. N'oubliez pas de transmettre également les fonctions de manipulation du state si besoin.
Étape 6 : les évènements
Certains de vos composants vont devoir manipuler des évènements : rajouter bien les appels de fonctions et les écouteurs d'évènements dans vos composants.
Étape 7 : testez votre application
Votre application devrait maintenant pouvoir fonctionner. Testez-la. Si certains comportements ne sont pas les bons, prenez-en note et cherchez dans les différentes étapes de conception ce qui ne se comporte pas comme prévu. Reyracez le parcours des informations et les valeurs contenues dans vos states en faisant des console.log là ou c'est nécéssaire.