⊗jsrtPmRtGSD 29 of 47 menu

React Router'da Depodan Veri Alma

Uygulamamızın şu anda statik olduğunu görüyorsunuz. Bu ve sonraki derslerde onu canlandırmaya başlayacağız. Önümüzdeki derslerde zaten React Router kullanarak ürünleri listeye ekleyebileceğiz.

Bu derste, başlangıç olarak, depodan veri almayı ele alacağız. Verilerin yerel olarak saklanması için localForage deposunu kullanacağız (kullanımı ve avantajları hakkında dokümantasyondan okuyabilirsiniz) - tüm modern tarayıcıların desteklediği LocalStorage benzeri. Aslında bu, birkaç depolama teknolojisinin birleşimidir. Nispeten kolay kullanımın yanı sıra, büyük miktarda veriyi, hatta farklı türlerde, resimler dahil saklamaya izin verir. Haydi onu projemize kuralım. Terminale yazın:

npm i localforage

Uygulamamızı yeniden başlatalım. src klasöründe, depo ile çalışmak için fonksiyonların olacağı forStorage.js dosyasını oluşturacağız.

Pekala, depodan ürünleri yükleyen fonksiyonla başlayalım. forStorage.js dosyasına kütüphaneyi içe aktaralım ve ürünleri almak için getProducts fonksiyonunu yazalım:

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

Aşağıda, fonksiyon kodundan sonra, fonksiyonların düzgün çalışması için ağ gecikmelerini (0.7 saniyeye kadar) taklit ederek someNetwork için kodu ekleyeceğiz. Eğer ürünümüz "önbelleğe alınmışsa", depo ile çalışan fonksiyonlarda gecikme olmayacak, eğer yoksa, bir gecikme olacak, bunun nasıl çalıştığını ileride göreceksiniz:

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); }); }

Önceki derslerin görevlerinde oluşturduğunuz uygulamayı alın. Uygulamaya localForage deposunu kurun.

Ders materyallerinden faydalanarak, forStorage.js dosyasını oluşturun ve içinde öğrenci verilerini depodan almak için getStudents fonksiyonunu yazın.

Türkçe
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenЎзбекOʻzbekTiếng Việt
Web sitesinin çalışması, analiz ve kişiselleştirme için çerezleri kullanıyoruz. Veri işleme, Gizlilik Politikası'na uygun olarak gerçekleşir.
tümünü kabul et özelleştir reddet