⊗jsrxPmWFRs 12 of 57 menu

Reduceri Redux

Iepriekšējā nodarbībā mēs, izmantojot funkciju createSlice, izveidojām produktu slāni products un reduceri, kas atjauninās šo slāni, kas glabājas store. Vēlreiz atgādinu, ka Redux stāvokļa dati tiek mainīti ar reduceru palīdzību.

Jāatceras, ka uz reduceriem attiecas vairāki ierobežojumi. Reducers atjaunina stāvokli tikai, pamatojoties uz saņemtajām pašreizējā stāvokļa vērtībām un action objekta, pēc tam nolemj, kā mainīt stāvokli un atgriež tā jauno vērtību.

Mēs zinām, ka pēc noklusējuma objekti un masīvi JavaScript ir mutējami (maināmi). Tāpat mēs zinām, ka stāvokli nevar mainīt tieši, tādā gadījumā jāstrādā tikai ar kopijām. Šim noteikumam pakļaujas arī reducers. Bet šādas loģikas rakstīšana manuāli var būt diezgan nogurdinoša un sarežģīta, un šeit palīgā nāk funkcija createSlice, kas izmanto bibliotēku Immer, kas pārveido jūsu 'mutējamo' kodu par 'nemutējamu'. Tādējādi grēkot un vienkāršojot dzīvi ir atļauts tikai izmantojot funkcijas createSlice vai createReducer.

Reduceru ierobežojumos ietilpst arī asinhronas loģikas izmantošana, nejaušu vērtību aprēķināšana un citu "blakusefektu" izpilde. Un tagad, tuvāk iepazinušies ar reduceri, atgriezīsimies pie mūsu lietotnes ar produktiem.

Mūsu lietotnē ir store, ko mēs izveidojām iepriekšējās nodarbībās, bet pagaidām tajā nekas nav. Atvērsim mūsu failu store.js un pievienosim tajā mazliet koda. Sākumā importēsim tajā reducera funkciju produktiem:

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

Tagad kā reduceri mēs varam norādīt importēto funkciju productsReducer:

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

Iepriekš minētā rindiņā mēs informējam mūsu store, ka tagad, kad rodas action, visi dati slīdim state.products tiks atjaunināti ar reduceri productsReducer.

Tagad jūs varat palaist lietotni (ievērojiet, ka konsolē pazuda brīdinājums par nederīgu reduceri!), atvērt Redux DevTools pārlūkprogrammā un pārlūkot tā cilnes. Piemēram, noklikšķinot uz cilnes State cilnē Inspector mēs varam redzēt mūsu divus produktu objektus, kuri tika izvadīti kā sākotnējā stāvokļa vērtība pirmajā lietotnes palaišanas reizē. Cilnē Log monitor mēs redzam, kādus slāņus glabā globālajā stāvoklī - tas ir slānis products, iekļaujot divus objektus. Apskatiet arī cilni Chart.

Atveriet savu lietotni ar studentiem un mainiet koda failu store.js, kā parādīts nodarbībā.

Palaidiet pārlūkprogrammā savu lietotni un pārlūkojiet pa Redux DevTools paplašinājuma cilnēm.

Latviešu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mēs izmantojam sīkdatnes, lai nodrošinātu vietnes darbību, analīti un personalizāciju. Datu apstrāde notiek saskaņā ar Konfidencialitātes politiku.
pieņemt visus iestatīt noraidīt