⊗jsrxPmWFRs 12 of 57 menu

Reducery v Reduxe

Na minulej lekcii sme pomocou funkcie createSlice vytvorili slice pre produkty products a reducer, ktorý bude aktualizovať tento slice uložený v store. Ešte raz pripomínam, že v Reduxe sa dáta stavu menia pomocou reducerov.

Treba pamätať, že na reducery sa vzťahuje rad obmedzení. Reducer aktualizuje stav iba na základe prijatých hodnôt aktuálneho stavu a objektu action, a potom sa rozhodne, ako zmeniť stav a vráti jeho novú hodnotu.

Vieme, že štandardne sú objekty a polia v JavaScripte mutable (zmeniteľné). Tiež vieme, že state nemožno meniť priamo, v takom prípade treba pracovať len s kópiami. Tomu musí vyhovieť aj reducer. Ale písanie takejto logiky manuálne môže byť celkom únavné a zložité, a tu prichádza na pomoc funkcia createSlice, ktorá používa knižnicu Immer, transformujúci váš 'mutable' kód na 'immutable'. Týmto spôsobom môžete 'hrešiť' a zjednodušovať život len pri použití funkcií createSlice alebo createReducer.

Medzi obmedzenia reducera patrí aj používanie asynchrónnej logiky, výpočet náhodných hodnôt a vykonávanie iných "vedľajších efektov". A teraz, keď sme sa zblížili s reducerom, vráťme sa k našej aplikácii s produktmi.

V našej aplikácii je store, ktorý sme vytvorili v predchádzajúcich lekciách, ale zatiaľ v ňom nič nie je. Otvorme náš súbor store.js a pridajme do neho trochu kódu. Na začiatok importujme do neho funkciu reducer pre produkty:

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

Teraz ako reducer môžeme zadať importovanú funkciu productsReducer:

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

Uvedeným riadkom hovoríme nášmu store, že teraz pri vzniku action všetky dáta pre slice state.products budú aktualizované reducerom productsReducer.

Teraz môžete spustiť aplikáciu (všimnite si, že v konzole zmizlo varovanie o neplatnom reduceri!), otvorte Redux DevTools v prehliadači a prehľadajte jeho karty. Napríklad, kliknutím na kartu State v karte Inspector môžeme vidieť naše dva objekty s produktmi, ktoré sa zobrazili ako počiatočná hodnota stavu pri prvom spustení aplikácie. Na karte Log monitor vidíme, aké slice má v sebe globálny stav - je to slice products, vrátane dvoch objektov. Tiež sa pozrite na kartu Chart.

Otvorte vašu aplikáciu so študentmi a zmeňte kód súboru store.js, ako je ukázané v lekcii.

Spustite v prehliadači vašu aplikáciu a prehľadajte karty rozšírenia Redux DevTools.

Slovenčina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť