Reducereiden Roolin Ymmärtäminen
Teoria
Reducerit ovat puhtaita funktioita, jotka määrittelevät, miten tila muuttuu lähetettyjen toimintojen perusteella. Ottamalla nykyisen tilan ja toiminnon parametreina, reducerit palauttavat sovelluksen uuden tilan.
Käytännön esimerkki
Projektimme reducers-kansiossa on tiedosto counterReducer.js, jossa määritellään reducer laskuritoiminnallisuudelle:
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;
Koodin selitys:
- Rivi 1: Tuodaan
createReducer-funktio@reduxjs/toolkit-paketista. Tätä funktiota käytetään reducerien luomiseen Reduxissa; - Rivi 2: Tuodaan
incrementjadecrementaction creatorit tiedostosta../actions/counterAction.js. Näitä action creatoreita käytetään määrittelemään toiminnot, joita reducer käsittelee; - Rivi 4: Määritellään
initialState-vakio arvoksi0. Tämä edustaa laskurin alkuarvoa Redux-tallennustilassa; - Rivi 6: Käytetään
createReducer-funktiota määrittelemääncounterReducer; - Rivit 6-11:
createReducer-funktio ottaa kaksi argumenttia:initialStateja palautefunktion, joka määrittelee, miten tila päivitetään lähetettyjen toimintojen perusteella; - Rivi 7: Käytetään
builder-oliota määrittelemään eri toimintojen tapaukset palautefunktion sisällä; - Rivit 9, 10: Käytetään
addCase-olionbuilder-metodia määrittelemään, miten tila päivitetään, kun tietyt toiminnot, kutenincrementjadecrement, lähetetään; - Rivit 9, 10:
addCase-funktion palautefunktio ottaa nykyisen tilan (state) argumenttina ja palauttaa uuden tilan vastaavan toiminnon jälkeen; - Tässä tapauksessa, kun
increment-toiminto lähetetään, tila kasvaa1:llä; kundecrement-toiminto lähetetään, tila pienenee1:llä; - Rivi 13: Lopuksi viedään
counterReducermoduulin oletusvientinä.
Huomio
Yhteenvetona,
counterReducerkäsittelee lähetetyt toiminnot ja päivittää laskurin tilan vastaavasti Redux-tallennustilassa.
1. Mitä funktiota käytetään reducerien luomiseen Reduxissa?
2. Mikä on builder-olion tarkoitus koodissa?
3. Mitä tapahtuu tilalle, kun increment-toiminto lähetetään?
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Can you explain how the builder callback works in createReducer?
What happens if an unknown action is dispatched to the counterReducer?
Can you show an example of how to dispatch the increment or decrement actions?
Awesome!
Completion rate improved to 4.17
Reducereiden Roolin Ymmärtäminen
Pyyhkäise näyttääksesi valikon
Teoria
Reducerit ovat puhtaita funktioita, jotka määrittelevät, miten tila muuttuu lähetettyjen toimintojen perusteella. Ottamalla nykyisen tilan ja toiminnon parametreina, reducerit palauttavat sovelluksen uuden tilan.
Käytännön esimerkki
Projektimme reducers-kansiossa on tiedosto counterReducer.js, jossa määritellään reducer laskuritoiminnallisuudelle:
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;
Koodin selitys:
- Rivi 1: Tuodaan
createReducer-funktio@reduxjs/toolkit-paketista. Tätä funktiota käytetään reducerien luomiseen Reduxissa; - Rivi 2: Tuodaan
incrementjadecrementaction creatorit tiedostosta../actions/counterAction.js. Näitä action creatoreita käytetään määrittelemään toiminnot, joita reducer käsittelee; - Rivi 4: Määritellään
initialState-vakio arvoksi0. Tämä edustaa laskurin alkuarvoa Redux-tallennustilassa; - Rivi 6: Käytetään
createReducer-funktiota määrittelemääncounterReducer; - Rivit 6-11:
createReducer-funktio ottaa kaksi argumenttia:initialStateja palautefunktion, joka määrittelee, miten tila päivitetään lähetettyjen toimintojen perusteella; - Rivi 7: Käytetään
builder-oliota määrittelemään eri toimintojen tapaukset palautefunktion sisällä; - Rivit 9, 10: Käytetään
addCase-olionbuilder-metodia määrittelemään, miten tila päivitetään, kun tietyt toiminnot, kutenincrementjadecrement, lähetetään; - Rivit 9, 10:
addCase-funktion palautefunktio ottaa nykyisen tilan (state) argumenttina ja palauttaa uuden tilan vastaavan toiminnon jälkeen; - Tässä tapauksessa, kun
increment-toiminto lähetetään, tila kasvaa1:llä; kundecrement-toiminto lähetetään, tila pienenee1:llä; - Rivi 13: Lopuksi viedään
counterReducermoduulin oletusvientinä.
Huomio
Yhteenvetona,
counterReducerkäsittelee lähetetyt toiminnot ja päivittää laskurin tilan vastaavasti Redux-tallennustilassa.
1. Mitä funktiota käytetään reducerien luomiseen Reduxissa?
2. Mikä on builder-olion tarkoitus koodissa?
3. Mitä tapahtuu tilalle, kun increment-toiminto lähetetään?
Kiitos palautteestasi!