⊗jsrxPmWFRs 12 of 57 menu

Reducători în Redux

În lecția precedentă, folosind funcția createSlice am creat un slice pentru produsele products și un reducer care va actualiza acest slice stocat în store. Vă reamintesc încă o dată, că în Redux datele de stare se modifică cu ajutorul reducerilor.

Trebuie să reținem că asupra reducerilor se impune o serie de restricții. Reducerul actualizează starea doar pe baza valorilor primite ale stării curente și a obiectului action, apoi decide cum să modifice starea și returnează noua sa valoare.

Știm că, implicit, obiectele și array-urile în JavaScript sunt mutabile (modificabile). De asemenea, știm că nu putem modifica state-ul direct, în acest caz trebuie să lucrăm doar cu copii. Acestei reguli trebuie să i se supună și reducerul. Dar scrierea manuală a unei astfel de logici poate fi o activitate destul de obositoare și complexă, iar aici vine în ajutor funcția createSlice, care utilizează biblioteca Immer, transformând codul tău 'mutabil' în 'nemutabil'. Astfel, putem păcătui și simplifica viața doar atunci când utilizăm funcțiile createSlice sau createReducer.

Printre restricțiile reducerului se numără și utilizarea logicii asincrone, calculul valorilor aleatorii și executarea altor "efecte secundare". Iar acum, după ce ne-am familiarizat mai bine cu reducerul, să ne întoarcem la aplicația noastră cu produse.

În aplicația noastră există un store pe care l-am creat în lecțiile anterioare, dar deocamdată nu conține nimic. Să deschidem fișierul nostru store.js și să adăugăm puțin cod în el. Pentru început, să importăm în el funcția reducer pentru produse:

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

Acum, ca reducer putem specifica funcția importată productsReducer:

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

Prin linia de mai sus, îi spunem store-ului nostru că de acum înainte, la apariția unui action, toate datele pentru slice-ul state.products vor fi actualizate de către reducerul productsReducer.

Acum puteți porni aplicația (observați că în consolă a dispărut avertismentul despre un reducer nevalid!), să deschideți Redux DevTools în browser și să navigați prin filele acestuia. De exemplu, dând click pe fila State din fila Inspector putem vedea cele două obiecte cu produse ale noastre, care au fost afișate ca valoare inițială a stării la prima lansare a aplicației. În fila Log monitor vedem ce slice-uri conține starea globală - acesta este slice-ul products, care include două obiecte. De asemenea, aruncați o privire și în fila Chart.

Deschideți aplicația voastră cu studenți și modificați codul fișierului store.js, așa cum este arătat în lecție.

Lansați în browser aplicația voastră și navigați prin filele extensiei Redux DevTools.

Română
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Folosim cookie pentru funcționarea site-ului, analiză și personalizare. Prelucrarea datelor are loc în conformitate cu Politica de confidențialitate.
acceptă toate configurează respinge