Redux илоаси ва сервер ўртасида маълумот алмашиш
Ушбу бўлим Redux да эришган ёзувларда тўхтаб қолмай, бу ўқув қўлланмани охиригача етказишга қарор қилган тажрибали ўқувчилар учун бўлади. Кейинги икки бўлимда биз Redux илоасининг асинхрон мантиқ билан ишлашини кўриб чиқамиз, илоамизни сервер томони билан боғлаймиз ва унга у билан маълумот алмашишни ўргатамиз.
Олдинги бўлимлардан биз биламизки, Redux илоасининг иши синхрон механизмга асосланган. Ишнинг асосий боскичлари иловада кандайдир воқеа юз берганда экшенлар юбориш, сўнг store даги стейтни функция-редьюсер орқали янгилаш, илова компонентларига стейт ўзгаргани ҳақида хабар бериш ва мос равишда компонентларда янги стейт қийматини кўрсатишдан иборат.
Ҳаётимизда кўпинча иловага асинхрон мантиқ ҳам зарур бўлади, масалан HTTP API сўровлари билан ишлашда ва қандайдир ташқи сервердан маълумот олишда. Шу sababli, бизнинг 'синхрон' Redux store имиз бундай асинхрон мантиқ билан ишлай олиши учун, шunday деб аталувчи middlware - иловамизнинг store и ва, масалан, биз ушбу ўқув қўлланмаси бўламида иш бошлайдиган сервер ўртасидаги восифа ёки боғловчи бўлган dasturiy ta'minot ishlatiladi.
Redux учун бундай middleware лар жуда кўп яратилган, аммо улар орасида энг кенг тарқалгани ва Redux иловаларининг асинхрон мантиқ билан ишида ҳали расмий тавсия этиладигани Redux Thunk бўлиб қолаверди. Бу dasturiy ta'minot бизга setTimeOut, Promises, async/await каби асинхрон мантиқни ўз ичига олган оддий функциялар (ёки thunk лар) дан бизнинг store билан ўзаро таъсир учун фойдаланишга ёрдам беради. Терминнинг ўзига келсак, thunk - бу қандайдир кейингига қолдирилган ишни бажарадиган коддир.
Энди биз Redux да асинхрон мантиқ билан ишлашни бироз ўрганганимиздан сўнг, биз ушбу боскинни иловамизда амалга оширишга киришишимиз мумкин. Биз иловамизнинг қандайдир ташқи сервер билан ўзаро таъсир қилишини, ундан маълумот олиши ва унга маълумот ўтказишини таъминлашимиз керак. Бошқача қилиб айтганда, олдимизда бизни қизиқарли ва жуда мухим мавзу кутмоқда. Бошлаймиз.