ReactNative之本地存储
AsyncStorage 是一个简单的、异步的、持久化的 Key-Value 存储系统,它对于 App 来说是全局性的。它用来代替 LocalStorage。由于它的操作是全局的,官方建议我们最好针对 AsyncStorage 进行一下抽象的封装再使用,而且不是直接拿 AsyncStorage 进行使用。AsyncStorage 存储的位置根据系统的不同而有所差异。iOS 中的存储类似于 NSUserDefault,通过 plist 文件存放在设备中。Android 中会存储在 RocksDB 或者 SQLite 中,取决于你使用哪个。
import React,{AsyncStorage} from 'react-native';
class KyAsyncStorage{
/**
* 获取
* @param key
* @returns {Promise.<TResult>}
*/
static get(key){
return AsyncStorage.getItem(key).then((value)=>{
const jsonValue = JSON.parse(value);
return jsonValue;
}).catch((error)=>{
console.log(error);
});
}
/**
* 保存
* @param key
* @param value
* @returns {*|Promise}
*/
static save(key,value){
return AsyncStorage.setItem(key,JSON.stringify(value));
}
/**
* 更新
* @param key
* @param value
* @returns {Promise.<TResult>|Promise.<*>|Promise.<U>|*}
*/
static update(key, value) {
return DeviceStorage.get(key).then((item) => {
value = typeof value === 'string' ? value : Object.assign({}, item, value);
return AsyncStorage.setItem(key, JSON.stringify(value));
}).catch((error)=>{
console.log(error);
});
}
/**
* 删除
* @param key
* @returns {*|Promise}
*/
static delete(key) {
return AsyncStorage.removeItem(key);
}
}
export default KyAsyncStorage;