Comprendre le Rôle des Reducers
Théorie
Les reducers sont des fonctions pures qui spécifient comment l’état doit changer en réponse aux actions dispatchées. En prenant l’état actuel et une action comme paramètres, les reducers retournent 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
createReducer
depuis le package@reduxjs/toolkit
. Cette fonction est utilisée pour créer des reducers dans Redux ; - Ligne 2 : Importation des créateurs d’actions
increment
etdecrement
depuis le fichier../actions/counterAction.js
. Ces créateurs d’actions 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
createReducer
pour définir lecounterReducer
; - Lignes 6-11 : La fonction
createReducer
prend deux arguments : l’initialState
et une fonction de rappel qui définit comment l’état doit être mis à jour selon les actions dispatchées ; - Ligne 7 : Utilisation de l’objet
builder
pour définir les cas pour différentes actions à l’intérieur de la fonction de rappel ; - Lignes 9, 10 : Utilisation de la méthode
addCase
de l’objetbuilder
pour définir comment l’état doit être mis à jour lorsque des actions spécifiques, commeincrement
etdecrement
, sont dispatchées ; - Lignes 9, 10 : La fonction de rappel à l’intérieur de
addCase
prend l’état actuel (state
) comme argument et retourne le nouvel état après application de l’action correspondante ; - Dans ce cas, lorsque l’action
increment
est dispatchée, l’état est incrémenté de1
; lorsque l’actiondecrement
est dispatchée, l’état est décrémenté de1
; - Ligne 13 : Enfin, exportation du
counterReducer
comme export par défaut du module.
Remarque
En résumé, le
counterReducer
va gérer les actions dispatchées et mettre à 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 changer en réponse aux actions dispatchées. En prenant l’état actuel et une action comme paramètres, les reducers retournent 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
createReducer
depuis le package@reduxjs/toolkit
. Cette fonction est utilisée pour créer des reducers dans Redux ; - Ligne 2 : Importation des créateurs d’actions
increment
etdecrement
depuis le fichier../actions/counterAction.js
. Ces créateurs d’actions 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
createReducer
pour définir lecounterReducer
; - Lignes 6-11 : La fonction
createReducer
prend deux arguments : l’initialState
et une fonction de rappel qui définit comment l’état doit être mis à jour selon les actions dispatchées ; - Ligne 7 : Utilisation de l’objet
builder
pour définir les cas pour différentes actions à l’intérieur de la fonction de rappel ; - Lignes 9, 10 : Utilisation de la méthode
addCase
de l’objetbuilder
pour définir comment l’état doit être mis à jour lorsque des actions spécifiques, commeincrement
etdecrement
, sont dispatchées ; - Lignes 9, 10 : La fonction de rappel à l’intérieur de
addCase
prend l’état actuel (state
) comme argument et retourne le nouvel état après application de l’action correspondante ; - Dans ce cas, lorsque l’action
increment
est dispatchée, l’état est incrémenté de1
; lorsque l’actiondecrement
est dispatchée, l’état est décrémenté de1
; - Ligne 13 : Enfin, exportation du
counterReducer
comme export par défaut du module.
Remarque
En résumé, le
counterReducer
va gérer les actions dispatchées et mettre à 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 !