ReactNative之AsyncStorage本地存儲

ReactNative之本地存儲

  • 在RN開發(fā)中,持久化存儲數(shù)據(jù)压昼,可以使用AsyncStorage斋陪,對原生的API進(jìn)行了一層封裝
  • AsyncStorage是一個簡單的、異步的辱挥、持久化的Key-Value存儲系統(tǒng)犁嗅,它對于App來說是全局性的

AsyncStorage原理和使用

  • AsyncStorage存儲數(shù)據(jù),在iOS中般贼,底層會把數(shù)據(jù)保存到沙盒中的Documents中,并生成manifest.json文件愧哟。保存的數(shù)據(jù)都在manifest.json中奥吩。
  • AsyncStorage刪除數(shù)據(jù)哼蛆,也僅僅是刪除manifest.json文件中的數(shù)據(jù),并不是刪除manifest.json文件
  • 唯有clear方法是將文件刪除
數(shù)據(jù)持久化.jpg
json文件內(nèi)容.jpg

一. 存儲

static setItem(key: string, value: string, callback?: ?(error: ?Error) => void) 
//將key字段的值設(shè)置成value霞赫,并在完成后調(diào)用callback函數(shù)腮介。如果有任何錯誤發(fā)生,則會傳遞一個Error對象作為第一個參數(shù)端衰。返回一個Promise對象
  • 注意:AsyncStorage只能存儲字符串叠洗,需要把對象轉(zhuǎn)換為字符串才行
  • 具體使用
//key值
var key = 'per'
var person = {
    name:'jun',
    age:20
}

//json轉(zhuǎn)成字符串
var jsonStr = JSON.stringify(person)

//存儲
AsyncStorage.setItem('person', jsonStr, function (error) {
    if (error) {
        alert('存儲失敗')
    }else {
        alert('存儲完成')
    }
})

二. 讀取

static getItem(key: string, callback?: ?(error: ?Error, result: ?string) => void) 
//讀取key字段并將結(jié)果作為第二個參數(shù)傳遞給callback之碗。如果有任何錯誤發(fā)生违霞,則會傳遞一個Error對象作為第一個參數(shù)。返回一個Promise對象漾稀。

使用方法

//讀取
_readData(){
    console.log('讀取')
    AsyncStorage.getItem('per', function (error, result) {
        if (error) {
            alert('讀取失敗')
        }else {
            console.log(result)
            alert('讀取完成')
        }
    })
}

三. 刪除

static removeItem(key: string, callback?: ?(error: ?Error) => void) 
//刪除一個字段抵代。返回一個Promise對象腾节。

static clear(callback?: ?(error: ?Error) => void) 
//刪除全部的AsyncStorage數(shù)據(jù),即直接刪除該緩存文件

函數(shù)用法

//刪除
_deleteData(){
    console.log('刪除')

    //刪除一條數(shù)據(jù)
    AsyncStorage.removeItem('per', function (error) {
        if (error) {
            alert('刪除失敗')
        }else {
            alert('刪除完成')
        }
    })

    //刪除json文件
    AsyncStorage.clear(function (error) {
        if (error) {
            alert('文件刪除失敗')
        }else {
            alert('文件刪除完成')
        }
    })
}

四. 其他用法

static mergeItem(key: string, value: string, callback?: ?(error: ?Error) => void) 
//假設(shè)已有的值和新的值都是字符串化的JSON,則將兩個值合并案腺。返回一個Promise對象庆冕。還沒有被所有原生實(shí)現(xiàn)都支持

static getAllKeys(callback?: ?(error: ?Error, keys: ?Array<string>) => void) 
//獲取所有本應(yīng)用可以訪問到的數(shù)據(jù),不論來自什么庫或調(diào)用者劈榨。返回一個Promise對象访递。

static flushGetRequests() 
//清除所有進(jìn)行中的查詢操作。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末同辣,一起剝皮案震驚了整個濱河市拷姿,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌旱函,老刑警劉巖跌前,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異陡舅,居然都是意外死亡抵乓,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進(jìn)店門靶衍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來灾炭,“玉大人,你說我怎么就攤上這事颅眶◎诔觯” “怎么了?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵涛酗,是天一觀的道長铡原。 經(jīng)常有香客問我,道長商叹,這世上最難降的妖魔是什么燕刻? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮剖笙,結(jié)果婚禮上卵洗,老公的妹妹穿的比我還像新娘。我一直安慰自己弥咪,他們只是感情好过蹂,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著聚至,像睡著了一般酷勺。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上扳躬,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天脆诉,我揣著相機(jī)與錄音勋功,去河邊找鬼。 笑死库说,一個胖子當(dāng)著我的面吹牛狂鞋,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播潜的,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼骚揍,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了啰挪?” 一聲冷哼從身側(cè)響起信不,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎亡呵,沒想到半個月后抽活,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡锰什,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年下硕,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片汁胆。...
    茶點(diǎn)故事閱讀 38,654評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡梭姓,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出嫩码,到底是詐尸還是另有隱情誉尖,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布铸题,位于F島的核電站铡恕,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏丢间。R本人自食惡果不足惜探熔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望千劈。 院中可真熱鬧祭刚,春花似錦、人聲如沸墙牌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽喜滨。三九已至,卻和暖如春撤防,著一層夾襖步出監(jiān)牢的瞬間虽风,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留辜膝,地道東北人无牵。 一個月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像厂抖,于是被迫代替她去往敵國和親茎毁。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,543評論 2 349

推薦閱讀更多精彩內(nèi)容