⊗jsrxPmWFRs 12 of 57 menu

Reduceri u Redux-u

Na prethodnoj lekciji smo pomoću funkcije createSlice kreirali slice za proizvode products i reducer koji će ažurirati ovaj slice, koji se čuva u store-u. Još jednom podsećam, da se u Redux-u podaci stanja menjaju pomoću reducera.

Treba imati na umu da se na reducere nameće niž ograničenja. Reducer ažurira stanje samo na osnovu dobijenih vrednosti trenutnog stanja i objekta action, a zatim odlučuje, kako da promeni stanje i vraća njegovu novu vrednost.

Znamo da su podrazumevano objekti i nizovi u JavaScript-u mutabilni (promenljivi). Takođe znamo da se stanje ne sme direktno menjati, u takvim slučajevima treba raditi samo sa kopijama. Ovom pravilu se mora pokoravati i reducer. Ali ručno pisanje takve logike može biti prilično zamorno i složeno, i ovde u pomoć dolazi funkcija createSlice, koja koristi biblioteku Immer, koja transformiše vaš 'mutabilni' kod u 'nemutabilni'. Na taj način, grešiti i pojednostavljivati život možete samo pri korišćenju funkcija createSlice ili createReducer.

U ograničenja reducera spada takođe korišćenje asinhrone logike, izračunavanje slučajnih vrednosti i izvršavanje drugih "sporednih efekata". A sada, nakon što smo se upoznali sa reducerom izbliza, vratimo se našoj aplikaciji sa proizvodima.

U našoj aplikaciji postoji store, koji smo kreirali u prethodnim lekcijama, ali za sada u njemu nema ničega. Hajde da otvorimo naš fajl store.js i dodamo u njega malo koda. Za početak importujmo u njega funkciju reducera za proizvode:

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

Sada kao reducer možemo navedemo importovanu funkciju productsReducer:

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

Gorenavedenom linijom govorimo našem store-u da sada pri nastanku action-a svi podaci za slice state.products će biti ažurirani reducerom productsReducer.

Sada možete pokrenuti aplikaciju (primetite, da je iz konzole nestalo upozorenje o nevalidnom reduceru!), otvoriti Redux DevTools u browser-u i proći kroz njegove kartice. Na primer, klikom na karticu State u kartici Inspector možemo videti naša dva objekta sa proizvodima, koji su se prikazali kao početna vrednost stanja pri prvom pokretanju aplikacije. Na kartici Log monitor vidimo koje slice-ove ima globalno stanje - to je slice products, koji uključuje dva objekta. Takođe pogledajte karticu Chart.

Otvorite vašu aplikaciju sa studentima i izmenite kod fajla store.js, kako je prikazano u lekciji.

Pokrenite u browser-u vašu aplikaciju i prođite kroz kartice ekstenzije Redux DevTools.

Srpski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Koristimo kolačiće za rad sajta, analitiku i personalizaciju. Obrada podataka se vrši u skladu sa Politikom privatnosti.
prihvati sve podesi odbij