⊗jsrxPmSDCl 44 of 57 menu

Redux ilova uchun mijoz

Oldingi darslarda biz ilovamizning server qismi bilan ishlashni deyarli yakunladik, keyingi darslarda zarurat tug'ilganida uni biroz to'ldiramiz. Endi bizga serverga HTTP-so'rovlar yuboradigan ilova uchun mijoz yaratish zarur.

Mahsulotlar bilan ilovamizni ochamiz va api papkasida client.js faylini yaratamiz. Boshlanishiga biz client funksiyasining o'zini yozamiz, u ham GET ham POST so'rovlari uchun ishlaydi. U parametr sifatida yo'l, so'rov turi va so'rov tana qismini (POST holatida), agar mavjud bo'lsa, oladi:

export async function client(url, method, body = {}) {}

Keyin biz so'rov uchun turli ma'lumotlarni uzatadigan options obyektini shakllantirishimiz kerak. Bu so'rov turi va sarlavhalar bo'ladi:

export async function client(url, method, body = {}) { const options = { method: method, headers: { 'Content-Type': 'application/json', }, } }

body xususiyati bizda ixtiyoriy, biz uni POST-so'rov bo'lsa uzatishimiz kerak. Buning uchun client ichida options obyekti uchun koddan keyin uni options ga JSON formatidagi so'rov tana qismi bilan qo'shamiz, agar POST metodi tanlangan bo'lsa:

if (method === 'POST') { options.body = JSON.stringify(body) }

Keyin pastroqda client kodida biz try blokini tashkil qilamiz, uning birinchi qatorida fetch yordamida serverdan javob olamiz. Muvaffaqiyatsizlik holatida biz an'anaviy ravishda xatolik bilan promis qaytaramiz:

let data try { const response = await window.fetch(url, options) } catch (err) { return Promise.reject(err.message ? err.message : data) }

Endi try blokidagi kodni to'ldiramiz. response ni olgandan so'ng, biz uni qayta ishlashimiz kerak. Undan ma'lumotlarni JSON da olamiz va agar javob statusi bizga hammasi joyida ekanligini signal bersa, u holda ma'lumotlar va ma'lumot bilan obyektni qaytaramiz: status, sarlavhalar va manzil. Agar status 'ok' bo'lmasa, u holda status matni bilan istisnoni chiqaramiz:

try { const response = await window.fetch(url, options) data = await response.json() if (response.ok) { return { status: response.status, headers: response.headers, url: response.url, data, } } throw new Error(response.statusText) }

client funksiyasi uchun kodimiz tayyor, qolgani faqat GET va POST metodlarimiz chaqirilganda qanday ishlashini yozish. Keling client funksiyasidan keyin ular uchun kod yozamiz. client.get metodi parametr sifatida yo'lni oladi va client funksiyasini chaqiradi, unga bu yo'lni va GET so'rov turini uzatadi:

client.get = (url) => client(url, 'GET')

client.post esa client uchun yo'l, POST so'rov turi va so'rov tana qismini uzatishi kerak:

client.post = (url, body) => client(url, 'POST', body)

Hammasi shu, bizning kichik mijozimiz server bilan ishlashga tayyor.

Talabalar bilan ilovangizni oching, unda api papkasida client.js faylini yarating. Dars materiallari bilan tanishib chiqqach client funksiyasi va uning ikkita metodining client.get va client.post kodini yozing (nusxalang).

Oʻzbek
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекTiếng Việt
Biz sayt ishlashi, tahlil qilish va shaxsiylashtirish uchun cookie-fayllardan foydalanamiz. Ma'lumotlarni qayta ishlash Maxfiylik siyosatiga muvofiq amalga oshiriladi.
hammasini qabul qilish sozlash rad etish