Comprendere il Ruolo dei Reducer
Teoria
I reducer sono funzioni pure che specificano come lo stato deve cambiare in risposta alle azioni inviate. Prendendo lo stato attuale e un'azione come parametri, i reducer restituiscono il nuovo stato dell'applicazione.
Pratica
Nella cartella reducers del nostro progetto, abbiamo il file counterReducer.js dove definiamo il reducer per la funzionalità del contatore:
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;
Spiegazione del codice:
- Riga 1: Importa la funzione
createReducerdal pacchetto@reduxjs/toolkit. Questa funzione viene utilizzata per creare reducer in Redux; - Riga 2: Importa i creator di azioni
incrementedecrementdal file../actions/counterAction.js. Questi creator di azioni vengono utilizzati per definire le azioni che il reducer gestirà; - Riga 4: Imposta la costante
initialStatea0. Questo rappresenta il valore iniziale del contatore nello store Redux; - Riga 6: Utilizza la funzione
createReducerper definire ilcounterReducer; - Riga 6-11: La funzione
createReduceraccetta due argomenti: l'initialStatee una funzione di callback che definisce come lo stato deve essere aggiornato in base alle azioni inviate; - Riga 7: Utilizza l'oggetto
builderper definire i casi per le diverse azioni all'interno della funzione di callback; - Riga 9, 10: Utilizza il metodo
addCasedell'oggettobuilderper definire come lo stato deve essere aggiornato quando vengono inviate azioni specifiche, comeincrementedecrement; - Riga 9, 10: La funzione di callback all'interno di
addCaseprende lo stato attuale (state) come argomento e restituisce il nuovo stato dopo aver applicato l'azione corrispondente; - In questo caso, quando viene inviata l'azione
increment, lo stato viene incrementato di1; quando viene inviata l'azionedecrement, lo stato viene decrementato di1; - Riga 13: Infine, esporta il
counterReducercome esportazione predefinita del modulo.
Nota
In sintesi, il
counterReducergestirà le azioni inviate e aggiornerà di conseguenza lo stato del contatore nello store Redux.
1. Quale funzione viene utilizzata per creare i reducer in Redux?
2. Qual è lo scopo dell'oggetto builder nel codice?
3. Cosa succede allo stato quando viene dispatchata l'azione increment?
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
Awesome!
Completion rate improved to 4.17
Comprendere il Ruolo dei Reducer
Scorri per mostrare il menu
Teoria
I reducer sono funzioni pure che specificano come lo stato deve cambiare in risposta alle azioni inviate. Prendendo lo stato attuale e un'azione come parametri, i reducer restituiscono il nuovo stato dell'applicazione.
Pratica
Nella cartella reducers del nostro progetto, abbiamo il file counterReducer.js dove definiamo il reducer per la funzionalità del contatore:
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;
Spiegazione del codice:
- Riga 1: Importa la funzione
createReducerdal pacchetto@reduxjs/toolkit. Questa funzione viene utilizzata per creare reducer in Redux; - Riga 2: Importa i creator di azioni
incrementedecrementdal file../actions/counterAction.js. Questi creator di azioni vengono utilizzati per definire le azioni che il reducer gestirà; - Riga 4: Imposta la costante
initialStatea0. Questo rappresenta il valore iniziale del contatore nello store Redux; - Riga 6: Utilizza la funzione
createReducerper definire ilcounterReducer; - Riga 6-11: La funzione
createReduceraccetta due argomenti: l'initialStatee una funzione di callback che definisce come lo stato deve essere aggiornato in base alle azioni inviate; - Riga 7: Utilizza l'oggetto
builderper definire i casi per le diverse azioni all'interno della funzione di callback; - Riga 9, 10: Utilizza il metodo
addCasedell'oggettobuilderper definire come lo stato deve essere aggiornato quando vengono inviate azioni specifiche, comeincrementedecrement; - Riga 9, 10: La funzione di callback all'interno di
addCaseprende lo stato attuale (state) come argomento e restituisce il nuovo stato dopo aver applicato l'azione corrispondente; - In questo caso, quando viene inviata l'azione
increment, lo stato viene incrementato di1; quando viene inviata l'azionedecrement, lo stato viene decrementato di1; - Riga 13: Infine, esporta il
counterReducercome esportazione predefinita del modulo.
Nota
In sintesi, il
counterReducergestirà le azioni inviate e aggiornerà di conseguenza lo stato del contatore nello store Redux.
1. Quale funzione viene utilizzata per creare i reducer in Redux?
2. Qual è lo scopo dell'oggetto builder nel codice?
3. Cosa succede allo stato quando viene dispatchata l'azione increment?
Grazie per i tuoi commenti!