React Native - 持久化存储 AsyncStorage

本文介绍了AsyncStorage,这是一个简单、异步且持久化的Key-Value存储系统,适用于全局存储。文中详细阐述了其工作原理、存储位置及常用接口,并提供了注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,AsyncStorage介绍

  • AsyncStorage 是一个简单的、异步的、持久化的 Key-Value 存储系统,它对于 App 来说是全局性的。它用来代替 LocalStorage。
  • 由于它的操作是全局的,官方建议我们最好针对 AsyncStorage 进行一下抽象的封装再使用,而且不是直接拿 AsyncStorage 进行使用。
  • AsyncStorage 存储的位置根据系统的不同而有所差异。iOS 中的存储类似于 NSUserDefault,通过 plist 文件存放在设备中。Android 中会存储在 RocksDB 或者 SQLite 中,取决于你使用哪个。

 

2,常用接口

根据键来获取值,获取的结果会放在回调函数中:
static getItem(key: string, callback:(error, result))
根据键来设置值:
static setItem(key: string, value: string, callback:(error))
根据键来移除项:
static removeItem(key: string, callback:(error))
获取所有的键:
static getAllKeys(callback:(error, keys))
设置多项,其中 keyValuePairs 是字符串的二维数组,比如:[['k1', 'val1'], ['k2', 'val2']]:
static multiSet(keyValuePairs, callback:(errors))
获取多项,其中 keys 是字符串数组,比如:['k1', 'k2']:
static multiGet(keys, callback:(errors, result))
删除多项,其中 keys 是字符串数组,比如:['k1', 'k2']:
static multiRemove(keys, callback:(errors))
清除所有的项目:
static clear(callback:(error))

3,注意事项

需要注意的是,在使用AsyncStorage的时候,setItem里面传入的数组或字典等对象需要使用JSON.stringtify()方法把他们解析成JSON字符串,反过来,在getItem方法里获取数组或字典等对象的时候需要使用JSON.parse方法将他们解析成对象。使用方法如下:

module.exports = {
/**保存信息*/
save(key, value) {
return AsyncStorage.setItem(key, JSON.stringify(value));
},
/**取数据*/
getValue(key, callback) {
return AsyncStorage.getItem(key).then((value) => {
const jsonValue = JSON.parse(value);
callback(jsonValue);
return jsonValue;
});
},
/**删除信息*/
delete(key) {
return AsyncStorage.removeItem(key);
},
};

 

调用方法如下:

saveData(){
let name= getValue('name',(n)=>{
if (n!=undefined) {
showMsg(n);
delete('name');
save('name','wang')
}else{
showMsg('没有数据');
save('name','li')
}
})
}

转载于:https://www.cnblogs.com/cui-cui/p/8482479.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值