React Native Expo急速教程 7 - AsyncStorage

2,026 阅读1分钟

翻译:reactnative.dev/docs/asyncs… 刘传君

AsyncStorage是一个未加密的、异步的、持久的、键值存储系统,它是全局的。应该使用它来代替LocalStorage。

建议你在AsyncStorage之上使用一个抽象,而不是直接使用AsyncStorage,因为它是全局操作的,所以还是轻度使用好些。

在iOS上,AsyncStorage由原生代码支持,它将小的值存储在序列化的字典中,大的值存储在单独的文件中。在Android上,AsyncStorage将根据可用的情况使用RocksDB或SQLite。

AsyncStorage JavaScript代码是一个门面,它提供了一个清晰的JavaScript API、真实的Error对象和非多函数。API中的每个方法都会返回一个Promise对象。

导入AsyncStorage库。

import { AsyncStorage } from 'react-native';

持久化数据:

_storeData = async () => {
  try {
    await AsyncStorage.setItem(
      '@MySuperStore:key',
      'I like to save it.'
    );
  } catch (error) {
    // Error saving data
  }
};

提取数据:

_retrieveData = async () => {
  try {
    const value = await AsyncStorage.getItem('TASKS');
    if (value !== null) {
      // We have data!!
      console.log(value);
    }
  } catch (error) {
    // Error retrieving data
  }
};