⊗jsrxPmWFRs 12 of 57 menu

Reducere i Redux

I den forrige lektion oprettede vi ved hjælp af funktionen createSlice en slice for produkter products og en reducer, som vil opdatere denne slice, der opbevares i store. Jeg minder lige om, at data i Redux-tilstanden ændres ved hjælp af reducere.

Det er vigtigt at huske, at der er en række begrænsninger for reducere. En reducer opdaterer kun tilstanden baseret på de modtagne værdier af den nuværende tilstand og action-objektet, og beslutter derefter, hvordan tilstanden skal ændres og returnerer dens nye værdi.

Vi ved, at objekter og arrays i JavaScript som standard er mutable (kan ændres). Vi ved også, at man ikke må ændre state direkte, i så fald skal man kun arbejde med kopier. Denne regel skal reduceren også overholde. Men at skrive sådan logik manuelt kan være ret trættende og kompliceret, og her kommer funktionen createSlice til undsætning, som bruger biblioteket Immer, der omdanner din 'mutable' kode til 'immutable'. På den måde kan man kun 'synde' og forenkle livet, når man bruger funktionerne createSlice eller createReducer.

Begrænsningerne for en reducer omfatter også at bruge asynkron logik, at beregne tilfældige værdier og at udføre andre "side effects". Og nu, efter at have lært reduceren bedre at kende, lader vi os vende tilbage til vores applikation med produkter.

I vores applikation har vi en store, som vi oprettede i de foregående lektioner, men indtil videre er der intet i den. Lad os åbne vores fil store.js og tilføje en smule kode. Til at starte med importerer vi reducer-funktionen for produkter:

import productsReducer from '../parts/products/productsSlice'

Nu kan vi som reducer angive den importerede funktion productsReducer:

export default configureStore({ reducer: { products: productsReducer } })

Med ovenstående linje fortæller vi vores store, at nu, når en action opstår, vil alle data for slicen state.products blive opdateret af reduceren productsReducer.

Nu kan du starte applikationen (bemærk, at advarslen om en ugyldig reducer er forsvundet fra konsollen!), åbne Redux DevTools i browseren og udforske dens faner. For eksempel, ved at klikke på fanen State under Inspector-fanen kan vi se vores to produktobjekter, som blev vist som startværdien for tilstanden, da applikationen startede for første gang. Under fanen Log monitor ser vi hvilke slices den globale tilstand har - det er slicen products, som indeholder to objekter. Kig også på fanen Chart.

Åbn din applikation med studerende og ændr koden i filen store.js, som vist i lektionen.

Start din applikation i browseren og udforsk fanerne i Redux DevTools-udvidelsen.

Dansk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruger cookies til webstedets funktion, analyse og personalisering. Behandling af data foregår i henhold til Fortrolighedspolitikken.
accepter alle tilpas afvis