⊗jsrxPmWFRs 12 of 57 menu

Redusere i Redux

I forrige leksjon brukte vi funksjonen createSlice for å opprette en slice for produkter products og en reducer som vil oppdatere denne slicen, lagret i store. Jeg minner igjen om at i Redux endres tilstandsdataene ved hjelp av redusere.

Det må huskes at det er en rekke begrensninger på redusere. En reducer oppdaterer tilstanden kun basert på de mottatte verdiene fra den nåværende tilstanden og action-objektet, og bestemmer deretter hvordan tilstanden skal endres og returnerer dens nye verdi.

Vi vet at objekter og arrays i JavaScript som standard er mutable (foranderlige). Vi vet også at vi ikke kan endre state direkte, i så fall må vi kun jobbe med kopier. Denne regelen må også følges av reducere. Men å skrive slik logikk manuelt kan være ganske slitsomt og komplisert, og her kommer funksjonen createSlice til unnsetning, som bruker biblioteket Immer, som transformerer din 'mutable' kode til 'immutable'. Dermed kan man synde og forenkle livet bare ved bruk av funksjonene createSlice eller createReducer.

Begrensningene på en reducer inkluderer også bruk av asynkron logikk, beregning av tilfeldige verdier og utførelse av andre "side effects". Og nå, etter å ha blitt bedre kjent med reducere, la oss gå tilbake til vår produk-applikasjon.

I applikasjonen vår har vi en store som vi opprettet i tidligere leksjoner, men foreløpig er det ingenting i den. La oss åpne filen store.js og legge til litt kode. La oss først importere reducer-funksjonen for produkter:

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

Nå kan vi spesifisere den importerte funksjonen productsReducer som reducer:

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

Med linjen ovenfor forteller vi store vår at nå, når en action oppstår, vil alle data for slicen state.products blitt oppdatert av reduceren productsReducer.

Nå kan du starte applikasjonen (legg merke til at advarselen om ugyldig reducer har forsvunnet i konsollen!), åpne Redux DevTools i nettleseren og utforske fanene. For eksempel, ved å klikke på State-fanen i Inspector-fanen kan vi se de to produktobjektene våre, som ble vist som startverdien for state ved første oppstart av applikasjonen. På Log monitor-fanen ser vi hvilke slicer den globale staten har - dette er products-slicen, som inkluderer to objekter. Ta også en titt på Chart-fanen.

Åpne studentapplikasjonen din og endre koden i filen store.js som vist i leksjonen.

Start applikasjonen din i nettleseren og utforsk fanene i Redux DevTools-utvidelsen.

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