⊗jsrxPmWFRs 12 of 57 menu

Redux-тегі редьюсерлер

Алдыңғы сабақта біз createSlice функциясын қолданып, products өнімдері үшін слайс және store-да сақталатын осы слайсты жаңартатын редьюсер жасадық. Тағы еске сала кетейін, Redux-те стейт деректері редьюсерлер арқылы өзгертіледі.

Редьюсерлерге бірқатар шектеулер қойылатынын есте сақтау керек. Редьюсер жай ғана алынған қазіргі стейт пен action объектісінің мәндері негізінде күйді жаңартады, содан кейін стейтті қалай өзгерту керектігін шешеді және оның жаңа мәнін қайтарады.

Біз JavaScript-те объектілер мен массивтердің әдепкі бойынша мутабельді (өзгермелі) екенін білеміз. Сонымен қатар, state-ті тікелей өзгертуге болмайтынын білеміз, бұл жағдайда тек көшірмелермен жұмыс істеу керек. Редьюсер де осы ережеге бағынуы керек. Бірақ мұндай логиканы қолмен жазу өте шаршататын және күрделі болуы мүмкін, және мұнда createSlice функциясы көмекке келеді, ол сіздің 'мутабельді' кодыңызды 'немутабельді' көшірмеге айналдыратын Immer кітапханасын қолданады. Осылайша, тек createSlice немесе createReducer функцияларын қолданған кезде ғана "күнә жасап" өмірді жеңілдетуге болады.

Редьюсердің шектеулеріне асинхронды логиканы қолдану, кездейсоқ мәндерді есептеу және басқа "қосымша әсерлерді" орындау кіреді. Енді редьюсермен жақынырақ танысып, өнімдерімізбен қосымшамызға оралайық.

Біздің қосымшамызда алдыңғы сабақтарда жасаған store бар, бірақ ол әлі ештеңеден бос. store.js файлымызды ашып, оған аздап код қосамыз. Алдымен оған өнімдер үшін reducer функциясын импорттаймыз:

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

Енді редьюсер ретінде біз импортталған productsReducer функциясын көрсете аламыз:

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

Жоғарыда көрсетілген жолымен біз store-ғ мынаны айтамыз: ендер action туындаған кезде, state.products слайсы үшін барлық деректер productsReducer редьюсері арқылы жаңартылады.

Енді сіз қосымшаны іске қоса аласыз (консольдегі редьюсердің жарамсыз екені туралы ескерту жоғалғанын байқаңыз!), браузердегі Redux DevTools-ты ашып, оның қойындыларымен қарап шығуыңызға болады. Мысалы, Inspector бөліміндегі State қойындысын басу арқылы біз қосымшаны бірінші рет іске қосқан кезде стейттің бастапқы мәні ретінде шыққан екі өнім объектісін көре аламыз. Log Monitor қойындысында біз жалпы стейттің қандай слайстарды қамтитынын көреміз - бұл екі объектіні қамтитын products слайсы. Сондай-ақ Chart қойындысына көз салыңыз.

Студенттеріңізбен қосымшаны ашып, store.js файлының кодын сабақта көрсетілгендей етіп өзгертіңіз.

Қосымшаңызды браузерде іске қосыңыз және Redux DevTools кеңейтімінің қойындыларымен танысыңыз.

Қазақ
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართული한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Біз сайттың жұмысы, аналитика және персонализация үшін cookie файлдарын қолданамыз. Деректерді өңдеу Құпиялылық саясаты бойынша жүреді.
барлығын қабылдау баптау қабылдамау