Contenu du cours
Redux Toolkit & React
Redux Toolkit & React
Actions et Créateurs d'Actions
Théorie
Les actions sont des charges utiles d'informations qui décrivent les changements que nous voulons apporter à l'état. Les créateurs d'actions sont des fonctions qui créent des actions. Ils encapsulent la logique de création des actions et peuvent être réutilisés dans toute l'application.
Pratique
Nous avons un fichier nommé counterAction.js
dans le dossier 'actions'. Ce fichier définit les actions et les créateurs d'actions pour la fonctionnalité de compteur.
Explication du code :
- Ligne 1 : Importer la fonction
createAction
du package@reduxjs/toolkit
. Cette fonction simplifie la création de créateurs d'actions ; - Ligne 3 : Créer la fonction créatrice d'action
increment
en utilisantcreateAction
. Cette fonction génère des actions pour incrémenter le compteur ;- La chaîne
"counter/increment"
fournie en argument représente le type d'action. Elle aide à identifier l'action lorsqu'elle est dispatchée.
- La chaîne
- Ligne 4 : De même, créer la fonction créatrice d'action
decrement
en utilisantcreateAction
. Cette fonction génère des actions pour décrémenter le compteur.- La chaîne
"counter/decrement"
représente le type d'action pour décrémenter.
- La chaîne
En utilisant createAction
, ces fonctions génèrent des objets d'action avec une propriété type
définie sur la chaîne de type spécifiée. Ces actions peuvent être dispatchées dans les réducteurs Redux ou les composants React pour mettre à jour le store Redux.
Remarque
Les chaînes de type d'action, telles que
"counter/increment"
et"counter/decrement"
, doivent être descriptives et refléter le but de l'action. Il est courant de préfixer le type d'action avec le nom de la fonctionnalité ou du slice pour une meilleure organisation. L'utilisation de constantes de chaîne ou de variables est recommandée pour la cohérence et une refactorisation plus facile.
1. Que sont les créateurs d'actions dans Redux ?
2. Que représente la chaîne "counter/increment"
dans le code ?
Merci pour vos commentaires !