Comprendre le Rôle des Reducers
Théorie
Les reducers sont des fonctions pures qui spécifient comment l'état doit évoluer en réponse aux actions dispatchées. En prenant l'état actuel et une action comme paramètres, les reducers renvoient le nouvel état de l'application.
Pratique
Dans le dossier reducers de notre projet, nous avons le fichier counterReducer.js où nous définissons le reducer pour la fonctionnalité de compteur :
import { createReducer } from "@reduxjs/toolkit";
import { increment, decrement } from "../actions/counterAction.js";
const initialState = 0;
const counterReducer = createReducer(initialState,
(builder) => {
builder
.addCase(increment, (state) => state + 1)
.addCase(decrement, (state) => state - 1);
});
export default counterReducer;
Explication du code :
- Ligne 1 : Importation de la fonction
createReducerdepuis le package@reduxjs/toolkit. Cette fonction est utilisée pour créer des reducers dans Redux ; - Ligne 2 : Importation des créateurs d'action
incrementetdecrementdepuis le fichier../actions/counterAction.js. Ces créateurs d'action servent à définir les actions que le reducer va gérer ; - Ligne 4 : Définition de la constante
initialStateà0. Cela représente la valeur initiale du compteur dans le store Redux ; - Ligne 6 : Utilisation de la fonction
createReducerpour définir lecounterReducer; - Lignes 6-11 : La fonction
createReducerprend deux arguments :initialStateet une fonction de rappel qui définit comment l'état doit être mis à jour en fonction des actions dispatchées ; - Ligne 7 : Utilisation de l'objet
builderpour définir les cas pour différentes actions à l'intérieur de la fonction de rappel ; - Lignes 9, 10 : Utilisation de la méthode
addCasede l'objetbuilderpour définir comment l'état doit être mis à jour lorsque des actions spécifiques, telles queincrementetdecrement, sont dispatchées ; - Lignes 9, 10 : La fonction de rappel à l'intérieur de
addCaseprend l'état actuel (state) comme argument et retourne le nouvel état après application de l'action correspondante ; - Dans ce cas, lorsque l'action
incrementest dispatchée, l'état est incrémenté de1; lorsque l'actiondecrementest dispatchée, l'état est décrémenté de1; - Ligne 13 : Enfin, exportation du
counterReducercomme export par défaut du module.
Remarque
En résumé, le
counterReducergérera les actions dispatchées et mettra à jour l'état du compteur en conséquence dans le store Redux.
1. Quelle fonction est utilisée pour créer des reducers dans Redux ?
2. Quel est le rôle de l'objet builder dans le code ?
3. Que se passe-t-il pour l'état lorsque l'action increment est dispatchée ?
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Awesome!
Completion rate improved to 4.17
Comprendre le Rôle des Reducers
Glissez pour afficher le menu
Théorie
Les reducers sont des fonctions pures qui spécifient comment l'état doit évoluer en réponse aux actions dispatchées. En prenant l'état actuel et une action comme paramètres, les reducers renvoient le nouvel état de l'application.
Pratique
Dans le dossier reducers de notre projet, nous avons le fichier counterReducer.js où nous définissons le reducer pour la fonctionnalité de compteur :
import { createReducer } from "@reduxjs/toolkit";
import { increment, decrement } from "../actions/counterAction.js";
const initialState = 0;
const counterReducer = createReducer(initialState,
(builder) => {
builder
.addCase(increment, (state) => state + 1)
.addCase(decrement, (state) => state - 1);
});
export default counterReducer;
Explication du code :
- Ligne 1 : Importation de la fonction
createReducerdepuis le package@reduxjs/toolkit. Cette fonction est utilisée pour créer des reducers dans Redux ; - Ligne 2 : Importation des créateurs d'action
incrementetdecrementdepuis le fichier../actions/counterAction.js. Ces créateurs d'action servent à définir les actions que le reducer va gérer ; - Ligne 4 : Définition de la constante
initialStateà0. Cela représente la valeur initiale du compteur dans le store Redux ; - Ligne 6 : Utilisation de la fonction
createReducerpour définir lecounterReducer; - Lignes 6-11 : La fonction
createReducerprend deux arguments :initialStateet une fonction de rappel qui définit comment l'état doit être mis à jour en fonction des actions dispatchées ; - Ligne 7 : Utilisation de l'objet
builderpour définir les cas pour différentes actions à l'intérieur de la fonction de rappel ; - Lignes 9, 10 : Utilisation de la méthode
addCasede l'objetbuilderpour définir comment l'état doit être mis à jour lorsque des actions spécifiques, telles queincrementetdecrement, sont dispatchées ; - Lignes 9, 10 : La fonction de rappel à l'intérieur de
addCaseprend l'état actuel (state) comme argument et retourne le nouvel état après application de l'action correspondante ; - Dans ce cas, lorsque l'action
incrementest dispatchée, l'état est incrémenté de1; lorsque l'actiondecrementest dispatchée, l'état est décrémenté de1; - Ligne 13 : Enfin, exportation du
counterReducercomme export par défaut du module.
Remarque
En résumé, le
counterReducergérera les actions dispatchées et mettra à jour l'état du compteur en conséquence dans le store Redux.
1. Quelle fonction est utilisée pour créer des reducers dans Redux ?
2. Quel est le rôle de l'objet builder dans le code ?
3. Que se passe-t-il pour l'état lorsque l'action increment est dispatchée ?
Merci pour vos commentaires !