Научите како да имплементирате овај асинхрони и глобални систем за складиштење кључ/вредност за вашу Реацт Нативе апликацију.
Реацт Нативе АсинцСтораге чини складиштење и трајне податке у апликацији Реацт Нативе једноставним. Са АсинцСтораге АПИ-јем, можете да рукујете једноставним случајевима малих података у вашој апликацији без потребе за локалним складиштем уређаја или сложеним системима за складиштење.
Шта је Реацт Нативе АсинцСтораге?
АсинцСтораге АПИ је трајни систем за складиштење кључ/вредност. АПИ подржава низ ЈаваСцрипт типови података, укључујући стринг, логичке вредности, број и ЈСОН објекте.
Подаци сачувани помоћу АсинцСтораге остају и остаће доступни чак и ако се апликација затвори или уређај поново покрене. Ово чини АсинцСтораге идеалним решењем за складиштење података за кеширање података и складиштење малих количина стања апликације.
Који проблем решава АсинцСтораге?
Пре појаве АсинцСтораге, правилно кеширање података је био непоуздан напор. Можете или да складиштите податке у локалном складишту, које није у стању да задржи податке када се ваша апликација затвори, или можете да ускладиштите податке у систему за управљање релационим базама података (РДБМС). Али сувише су сложени да би радили за овај случај употребе.
АсинцСтораге решава ове проблеме тако што пружа једноставан, поуздан начин за складиштење малих и привремених података у Реацт Нативе апликацијама.
За складиштење података помоћу АсинцСтораге, подаци се прво серијализују у ЈСОН стринг. ЈСОН стринг се затим чува у систему кључ/вредност. Када покушате да преузмете податке из АсинцСтораге, подаци се десериализују из ЈСОН-а, а затим вам се враћају у оригиналном формату.
Су асинхрони програми који се покрећу без блокирања главне ЈаваСцрипт нити. Чини га идеалним за складиштење података којима је потребан чест приступ, као што су корисничка подешавања и стање апликације.
АсинцСтораге Метходс
Да бисте инсталирали реацт-нативе-асинц-стораге пакет, покрените следећу команду унутар терминала вашег пројекта:
нпм инсталл @реацт-нативе-асинц-стораге/асинц-стораге
Пошто је АсинцСтораге по природи асинхрона, његове методе неће одмах вратити резултате. Уместо тога, они враћају обећање које се решава када се операција заврши.
Требало би да користите асинц/аваит синтаксу или сличну технику приликом позивања метода АсинцСтораге.
Писање података помоћу метода сетИтем() и мултиСет().
Тхе сетИтем() и мултиСет() методе се користе за постављање вредности за дати кључ. Ове методе прихватају кључ и вредности као параметре.
Метод би вратио обећање које се решава са логичком вредношћу која показује да ли је операција била успешна или се одбацује са грешком ако операција није успела:
// Сачувајте вредност за кључ "корисник"
чекати АсинцСтораге.сетИтем('корисник', 'јохн');
// Сачувајте више вредности за кључ "корисник"
чекати АсинцСтораге.мултиСет(['корисник', 'јохн', 'срна']);
Читање података помоћу метода гетИтем() и мултиГет().
Са гетИтем() методом, можете извући сачуване податке из складишта користећи кључ за вредност коју желите да добијете. Ако прослеђени кључ не постоји, обећање се одбија са грешком:
конст име = чекати АсинцСтораге.гетИтем('корисник');
Вредност коју враћа гетИтем() је низ. Ако треба да ускладиштите податке у другом формату, можете користити ЈСОН.стрингифи() да конвертујете податке у стринг пре него што их сачувате. Затим користите ЈСОН.парсе() да конвертујете стринг назад у оригинални тип података када га преузмете.
На пример:
// Сачувајте објекат {наме: "Јохн Дое", старост: 30} за кључ "усер"
чекати АсинцСтораге.сетИтем('корисник', ЈСОН.стрингифи({име: "Н.Н. лице", старости: 30}));
// Добити објекат за кључ "корисник"
конст корисник = ЈСОН.парсе(чекати АсинцСтораге.гетИтем('корисник'));
Такође можете користити мултиГет() метод за извлачење више парова кључ/вредност. Метод ће узети низ кључева који морају бити низови.
Спајање података помоћу метода мергеИтем() и мултиМерге().
Тхе спојиИтем() и мултиМерге() методе спајају дату вредност са постојећом вредношћу за дати кључ. Вредност пренета на спојиИтем() може бити било која врста података. Међутим, важно је напоменути да АсинцСтораге не шифрује податке, тако да свако ко има приступ уређају може да прочита податке:
чекати АсинцСтораге.мергеИтем('име', 'Јане Дое');
спојиИтем() узима кључ за вредност коју желите да спојите и нову вредност коју желите да спојите са постојећом вредношћу кључа. Користите мултиМерге() да спојите више од једне ставке у кључну вредност.
Обришите складиште помоћу методе цлеар().
Тхе јасно() метода вам омогућава да уклоните све ставке ускладиштене у АсинцСтораге. Може бити корисно у различитим сценаријима, на пример када треба да ресетујете стање апликације током одјављивања корисника или обришите кеширане податке на свом мобилном телефону.
На пример:
конст цлеарДата = асинц () => {
покушати {
чекати АсинцСтораге.цлеар();
} улов (е) {
конзола.еррор (е);
}
};
Горњи код ће избрисати све парове кључ/вредност ускладиштене у АсинцСтораге.
Поред тога, можете обезбедити функцију повратног позива за јасно(), који ће бити позван када се операција заврши:
АсинцСтораге.цлеар()
.онда(() => {
// Операција брисања је завршена
})
.улов((грешка) => {
конзола.еррор (грешка);
});
Имајте на уму да је јасно() метод ће трајно избрисати све податке ускладиштене у АсинцСтораге.
Кеширање података помоћу АсинцСтораге
Кеширање података је уобичајена пракса у развоју мобилних апликација ради побољшања перформанси и смањења мрежних захтева. Уз АсинцСтораге, лако можете кеширати податке у Реацт Нативе апликацијама.
Када приступите неком податку, подаци се прво проверавају да би се видело да ли су већ у кешу. Ако јесте, онда се подаци враћају из кеша. Ако није, онда програм преузима податке са трајније локације за складиштење и складишти их у кеш меморију. Следећи пут када приступите подацима, они ће бити враћени из кеша.
Претпоставимо да имате апликацију која приказује листу књига преузетих из АПИ-ја. Да бисте побољшали перформансе, можете да кеширате преузете податке књиге користећи АсинцСтораге.
Ево примера имплементације овога:
конст [књиге, сетБоокс] = усеСтате([]);
усеЕффецт(() => {
конст фетцхБоокс = асинц () => {
покушати {
// Проверите да ли кеширани подаци постоје
конст цацхедДата = чекати АсинцСтораге.гетИтем('цацхедБоокс');ако (цацхедДата !== нула) {
// Ако кеширани подаци постоје, анализирајте и поставите их као почетно стање
сетБоокс(ЈСОН.парсе (цацхедДата));
} друго {
// Ако кеширани подаци не постоје, преузми податке из АПИ-ја
конст одговор = чекати донеси (' https://api.example.com/books');
конст подаци = чекати респонсе.јсон();// Кеширање преузетих података
чекати АсинцСтораге.сетИтем('цацхедБоокс', ЈСОН.стрингифи (подаци));// Постави ухваћене податке као почетно стање
сетБоокс (подаци);
}
} улов (грешка) {
конзола.еррор (грешка);
}
};
фетцхБоокс();
}, []);
У овом примеру користите усеЕффецт кука за преузимање података књиге. У оквиру фетцхБоокс функцију, проверите да ли кеширани подаци постоје позивањем АсинцСтораге.гетИтем('цацхедБоокс'). Ако кеширани подаци постоје, рашчланите их помоћу ЈСОН.парсе и поставите га као почетно стање користећи сетБоокс. Ово вам омогућава да одмах прикажете кеширане податке.
Ако кеширани подаци не постоје, преузети податке из АПИ-ја користећи методу фетцх().. Када се подаци врате, кеширајте их позивом АсинцСтораге.сетИтем(). Затим поставите преузете податке као почетно стање, обезбеђујући да ће даљи рендери приказати дохваћене податке.
Сада можете да прикажете кеширане књиге овако:
увоз Реагујте, { усеЕффецт, усеСтате } из'реаговати';
увоз { Приказ, текст, равна листа } из'реацт-нативе';
увоз АсинцСтораге из'@реацт-нативе-асинц-стораге/асинц-стораге';конст Апп = () => {
повратак (Листа књига</Text>
дата={књиге}
кеиЕктрацтор={(итем) => итем.ид.тоСтринг()}
рендерИтем={({ итем }) => ({итем.титле}</Text> {итем.аутхор}</Text>
</View>
)}
/>
</View>
);
};
извозУобичајено Апликација;
Даља покретања апликације или поновно учитавање екрана ће приказати кеширане податке без непотребних АПИ захтева.
Коришћење АсинцСтораге за динамичко учитавање података
Реацт Нативе АсинцСтораге нуди моћно решење за складиштење и преузимање података. Користећи могућности кеширања, побољшава перформансе и обезбеђује бржи приступ ускладиштеним подацима.
Када комбинујете знање о АсинцСтораге са техникама као што је прилагођена пагинација, можете динамички учитавати и приказати податке у вашој Реацт Нативе апликацији. Ово ће омогућити ефикасно руковање великим скуповима података.