Forståelse af Reduceres Rolle
Teori
Reducers er rene funktioner, der angiver, hvordan tilstanden skal ændres som reaktion på udsendte handlinger. Ved at tage den nuværende tilstand og en handling som parametre returnerer reducers den nye tilstand for applikationen.
Praksis
I projektets reducers-mappe findes filen counterReducer.js, hvor vi definerer reduceren til vores tællerfunktionalitet:
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;
Kodeforklaring:
- Linje 1: Importér funktionen
createReducerfra pakken@reduxjs/toolkit. Denne funktion bruges til at oprette reducers i Redux; - Linje 2: Importér action creators
incrementogdecrementfra filen../actions/counterAction.js. Disse action creators bruges til at definere de handlinger, som reduceren skal håndtere; - Linje 4: Sæt konstanten
initialStatetil0. Dette repræsenterer den indledende værdi af tælleren i Redux store; - Linje 6: Brug funktionen
createReducertil at definerecounterReducer; - Linje 6-11: Funktionen
createReducertager to argumenter:initialStateog en callback-funktion, der definerer, hvordan tilstanden skal opdateres baseret på udsendte handlinger; - Linje 7: Brug objektet
buildertil at definere cases for forskellige handlinger inde i callback-funktionen; - Linje 9, 10: Brug metoden
addCasepåbuilder-objektet til at definere, hvordan tilstanden skal opdateres, når specifikke handlinger somincrementogdecrementudsendes; - Linje 9, 10: Callback-funktionen inde i
addCasetager den nuværende tilstand (state) som argument og returnerer den nye tilstand efter at have anvendt den tilsvarende handling; - I dette tilfælde, når handlingen
incrementudsendes, øges tilstanden med1; når handlingendecrementudsendes, mindskes tilstanden med1; - Linje 13: Til sidst eksporteres
counterReducersom standardeksporten af modulet.
Bemærk
Sammenfattende vil
counterReducerhåndtere de udsendte handlinger og opdatere tællertilstanden tilsvarende i Redux store.
1. Hvilken funktion bruges til at oprette reducers i Redux?
2. Hvad er formålet med builder-objektet i koden?
3. Hvad sker der med staten, når increment-actionen dispatches?
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Fantastisk!
Completion rate forbedret til 4.17
Forståelse af Reduceres Rolle
Stryg for at vise menuen
Teori
Reducers er rene funktioner, der angiver, hvordan tilstanden skal ændres som reaktion på udsendte handlinger. Ved at tage den nuværende tilstand og en handling som parametre returnerer reducers den nye tilstand for applikationen.
Praksis
I projektets reducers-mappe findes filen counterReducer.js, hvor vi definerer reduceren til vores tællerfunktionalitet:
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;
Kodeforklaring:
- Linje 1: Importér funktionen
createReducerfra pakken@reduxjs/toolkit. Denne funktion bruges til at oprette reducers i Redux; - Linje 2: Importér action creators
incrementogdecrementfra filen../actions/counterAction.js. Disse action creators bruges til at definere de handlinger, som reduceren skal håndtere; - Linje 4: Sæt konstanten
initialStatetil0. Dette repræsenterer den indledende værdi af tælleren i Redux store; - Linje 6: Brug funktionen
createReducertil at definerecounterReducer; - Linje 6-11: Funktionen
createReducertager to argumenter:initialStateog en callback-funktion, der definerer, hvordan tilstanden skal opdateres baseret på udsendte handlinger; - Linje 7: Brug objektet
buildertil at definere cases for forskellige handlinger inde i callback-funktionen; - Linje 9, 10: Brug metoden
addCasepåbuilder-objektet til at definere, hvordan tilstanden skal opdateres, når specifikke handlinger somincrementogdecrementudsendes; - Linje 9, 10: Callback-funktionen inde i
addCasetager den nuværende tilstand (state) som argument og returnerer den nye tilstand efter at have anvendt den tilsvarende handling; - I dette tilfælde, når handlingen
incrementudsendes, øges tilstanden med1; når handlingendecrementudsendes, mindskes tilstanden med1; - Linje 13: Til sidst eksporteres
counterReducersom standardeksporten af modulet.
Bemærk
Sammenfattende vil
counterReducerhåndtere de udsendte handlinger og opdatere tællertilstanden tilsvarende i Redux store.
1. Hvilken funktion bruges til at oprette reducers i Redux?
2. Hvad er formålet med builder-objektet i koden?
3. Hvad sker der med staten, når increment-actionen dispatches?
Tak for dine kommentarer!