⊗jsrtPmRtGSD 29 of 47 menu

Атрыманне дадзеных з сховішча ў React Router

Вы бачыце, што пакуль наша прыкладанне статычнае. У гэтым і наступных уроках мы пачнем яго ажыўляць. Ужо на бліжэйшых уроках мы зможам дадаваць прадукты ў спіс з дапамогай React Router.

У гэтым уроку мы, для пачатку, разбярэмся з атрыманнем дадзеных з сховішча. Для лакальнага захоўвання дадзеных мы будзем выкарыстоўваць сховішча localForage (вы можаце пачытаць пра яго выкарыстанне і перавагі ў дакументацыі) - аналаг LocalStorage, які падтрымліваюць усе сучасныя браўзэры. Фактычна гэта аб'яднанне некалькіх тэхналогій сховішчаў. Пры адносна лёгкім выкарыстанні, яно дазваляе захоўваць вялікія аб'ёмы дадзеных, прычым розных тыпаў, у тым ліку і выявы. Давайте ўсталюем яго ў наш праект. Убярыце ў тэрмінале:

npm i localforage

Перазапусцім наша прыкладанне. У тэчцы src мы створым файл forStorage.js, у якім будуць функцыі для работы з сховішчам.

Такім чынам, пачнем з функцыі загрузкі прадуктаў з сховішча. Дадамо ў forStorage.js імпорт бібліятэкі і напішам функцыю getProducts для атрымання прадуктаў:

import localforage from 'localforage'; export async function getProducts() { await someNetwork(); let products = await localforage.getItem('products'); if (!products) products = []; return products; }

Ніжэй пасля кода функцыі мы таксама дадамо код для someNetwork, імітуючы затрымкі сеткі (да 0.7 секунды) для нармальнай работы функцый. Калі наш прадукт "закэшаваны", то ў функцыях для работы з сховішчам затрымкі не будзе, калі не, то будзе затрымка, вы ўбачыце ў далейшым, як гэта працуе:

let someCache = {}; async function someNetwork(key) { if (!key) { someCache = {}; } if (someCache[key]) { return; } someCache[key] = true; return new Promise((res) => { setTimeout(res, Math.random() * 700); }); }

Вазьміце прыкладанне, створанае вамі ў заданнях да мінулых урокаў. Усталюйце ў прыкладанні сховішча localForage.

Карыстаючыся матэрыяламі ўрока, стварыце файл forStorage.js і напішыце ў ім функцыю getStudents для атрымання дадзеных студэнтаў з сховішча.

Беларуская
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 для працы сайта, аналітыкі і персаналізацыі. Апрацоўка дадзеных адбываецца згодна Палітыкай канфідэнцыяльнасці.
прыняць усе наладзіць адхіліць