reactnative本地存儲(chǔ)

什么是本地存儲(chǔ)?

成都創(chuàng)新互聯(lián)公司專注于托克遜網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供托克遜營(yíng)銷型網(wǎng)站建設(shè),托克遜網(wǎng)站制作、托克遜網(wǎng)頁(yè)設(shè)計(jì)、托克遜網(wǎng)站官網(wǎng)定制、成都微信小程序服務(wù),打造托克遜網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供托克遜網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。

本地儲(chǔ)存的意義:將數(shù)據(jù)存儲(chǔ)在設(shè)備中,在需要數(shù)據(jù)的時(shí)候調(diào)用,數(shù)據(jù)不會(huì)因?yàn)閼?yīng)用的退出或者網(wǎng)絡(luò)的斷開(kāi)而無(wú)法獲取。

在react native中本地存儲(chǔ)的方式有兩種:

    一種是AsyncStorage:
    AsyncStorage是一個(gè)簡(jiǎn)單的,未加密的,異步的,持久化,關(guān)鍵值存儲(chǔ)系統(tǒng),是全局的。類似于iOS中的NSUserDefault。
        應(yīng)用場(chǎng)景:如果用戶的信息量不大,僅僅需要存儲(chǔ)幾個(gè)用戶的配置信息,就用AsyncStorage;
    另一種是Realm:
        新的移動(dòng)端數(shù)據(jù)庫(kù)王者,性能比單獨(dú)無(wú)封裝的SQLite還要快;
        應(yīng)用場(chǎng)景:用戶的信息量比較大的情況下;

下面簡(jiǎn)單的介紹以下AsyncStorage:
`import {AsyncStorage} from 'react-native';

export default class StorageUtil {

/**

  • 保存一個(gè)Json對(duì)象
  • @param key
  • @param value
  • @param callback
    */
    static async saveJsonObject(key, value) {
    return await this.saveString(key, JSON.stringify(value));
    }

    /**

  • 獲取一個(gè)Json對(duì)象
  • @param key
  • @param defaultObject
    */
    static async getJsonObject(key, defaultObject) {
    let result=null;
    try{
    result=await this.getString(key,null);
    result=await JSON.parse(result);
    }catch (err){
    if(defaultObject){
    return Promise.resolve(defaultObject);
    }else{
    return Promise.reject(err);
    }
    }
    return result;

    }

    /**

  • 保存一個(gè)值
  • @param key
  • @param value
    */
    static async saveString(key, value) {
    if (key != null && value != null) {
    //Key 與Value 都不為空
    try {
    await AsyncStorage.setItem(key, value)
    } catch (err) {
    return Promise.reject(err)
    }
    return Promise.resolve(true);
    } else {
    return Promise.reject({"msg": "Key and value can not be null"});
    }
    }

    /**

  • 獲取一個(gè)值
  • @param key
  • @param defaultValue
    */
    static async getString(key, defaultValue) {
    let result = null;
    let noDataError = {"msg": "No value found !"};
    if (key != null) {
    result = await AsyncStorage.getItem(key);
    // console.log('get string result',result,defaultValue);
    return result ? result : defaultValue!=null ? defaultValue : Promise.reject(noDataError);
    } else {
    if (defaultValue) {
    return Promise.resolve(defaultValue);
    } else {
    return Promise.reject(noDataError);
    }
    }

    }

    /**

  • 移除一個(gè)值
  • @param key
    */
    static async remove(key) {
    let result = true;
    try {
    result = await AsyncStorage.removeItem(key);
    } catch (err) {
    return Promise.reject(err)
    }
    return result;
    }

    /**

  • 獲取所有已存儲(chǔ)
    */
    static async getAllKeys() {
    let result=true;
    try {
    result = await AsyncStorage.getAllKeys();
    } catch (err) {
    return Promise.reject(err)
    }
    return result;
    }

}`

外界調(diào)用:
保存操作:
StorageUtil.saveJsonObject(KEY_LOCAL_USER_INFO, user);

    讀取操作:
    `StorageUtil.getJsonObject(KEY_LOCAL_USER_INFO).then(data=>{console.log(data)})`

    清除操作:
    `StorageUtil.remove(KEY_LOCAL_USER_INFO)`

網(wǎng)站題目:reactnative本地存儲(chǔ)
URL標(biāo)題:http://bm7419.com/article6/gejcog.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)響應(yīng)式網(wǎng)站、網(wǎng)站設(shè)計(jì)公司商城網(wǎng)站、搜索引擎優(yōu)化定制開(kāi)發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)