⊗jsrxPmWFRs 12 of 57 menu

Reducer dalam Redux

Dalam pelajaran lepas, kami menggunakan fungsi createSlice untuk membuat satu slice untuk produk products dan satu reducer yang akan mengemas kini slice itu, yang disimpan dalam store. Sekali lagi saya ingatkan, dalam Redux, data keadaan diubah menggunakan reducer.

Perlu diingat bahawa terdapat beberapa sekatan ke atas reducer. Reducer mengemas kini keadaan hanya berdasarkan nilai semasa keadaan yang diterima dan objek action, kemudian memutuskan bagaimana untuk mengubah keadaan dan mengembalikan nilai baharunya.

Kami tahu bahawa secara lalai, objek dan array dalam JavaScript adalah mutable (boleh diubah). Juga kami tahu bahawa state tidak boleh diubah secara langsung, dalam kes sedemikian, hanya salinan yang harus digunakan. Peraturan ini mesti dipatuhi oleh reducer juga. Tetapi menulis logik sedemikian secara manual boleh menjadi agak membosankan dan kompleks, dan di sinilah fungsi createSlice datang untuk menyelamatkan, yang menggunakan pustaka Immer, untuk menukar kod 'mutable' anda kepada 'immutable'. Oleh itu, kita 'boleh berdosa' dan memudahkan hidup hanya apabila menggunakan fungsi createSlice atau createReducer.

Sekatan ke atas reducer juga termasuk menggunakan logik tak segerak, pengiraan nilai rawak dan melaksanakan "kesan sampingan" lain. Dan sekarang, setelah berkenalan dengan reducer dengan lebih dekat, mari kita kembali kepada aplikasi produk kami.

Dalam aplikasi kami, terdapat store yang kami buat dalam pelajaran sebelumnya, tetapi buat masa ini tiada apa-apa di dalamnya. Mari buka fail store.js kami dan tambahkan sedikit kod. Sebagai permulaan, import fungsi reducer untuk produk ke dalamnya:

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

Sekarang sebagai reducer, kami boleh menentukan fungsi yang diimport productsReducer:

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

Dengan baris di atas, kami memberitahu store kami bahawa sekarang apabila action berlaku semua data untuk slice state.products akan dikemas kini oleh reducer productsReducer.

Sekarang anda boleh menjalankan apl (perhatikan, amaran tentang reducer tidak sah telah hilang dari konsol!), buka Redux DevTools dalam pelayar dan terokai tabnya. Sebagai contoh, dengan mengklik pada tab State dalam tab Inspector kita boleh melihat dua objek produk kami, yang dipaparkan sebagai nilai keadaan awal pada pelancaran pertama apl. Pada tab Log monitor, kita melihat slice mana yang ada dalam state global - iaitu slice products, yang merangkumi dua objek. Juga lihat tab Chart.

Buka apl pelajar anda dan ubah kod fail store.js, seperti yang ditunjukkan dalam pelajaran.

Jalankan apl anda dalam pelayar dan terokai tab sambungan Redux DevTools.

Melayu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan kuki untuk operasi laman web, analisis dan personalisasi. Pemprosesan data dijalankan mengikut Polisi Kerahsiaan.
terima semua tataletak tolak