数据持久化就是指应用程序将某些数据存储在手机存储空间中。
借助native存储
这种方式不言而喻,就是把内容传递给native层,通过原生API存储,详见从零学React Native之05混合开发
AsyncStorage API
RN框架为开发者提供了 AsyncStorage API,开发者可以利用它将任意“字符串键值对”保存到存储空间中。
它是简单的,异步的。用它可以取代Android的sharedperference和ios的NSUserDefault。
AsyncStorage存储的数据对该RN应用全局都是可以访问的,只需要知道通过它增删改查数据就可以了。
写入数据
开发者可以通过静态函数setItem来存储数据。setItem的JavaScript原型是:
static object setItem(key, value,aCallBack)
写入数据有好几种方式,直接看代码:
// 构造
constructor(props) {
super(props);
this.doSomething=this.doSomething.bind(this);
}
doSomething(error){
if(error!=null){ //如发生错误 处理
console.log('error message:'+error.message);
return;
}
// 执行保存成功的操作
console.log("name保存成功!");
}
//下面4种写法, 推荐第三种和第四种
componentWillMount() {
//最简单的写法 , 无法检测保存何时结束,是否成功
AsyncStorage.setItem('NO','01');
console.log("NO保存成功");
// 通过自带的回调方法,一旦发生出错就可以监控到
AsyncStorage.setItem('name','张三',this.doSomething);