本地存储

本地存储

如果你不需要在本地存储太多数据同时也不需要存储结构化数据,那么你可以使用 shared_preferences,通过它来读写一些原始数据类型键值对,数据类型包括 boolean, float, ints, longs 和 string。

如何存储在应用程序中全局有效的键值对?

在 React Native,可以使用 AsyncStorage 中的 setItem 和 getItem 函数来存储和读取应用程序中的全局数据。

// React Native
await AsyncStorage.setItem( 'counterkey', json.stringify(++this.state.counter));
AsyncStorage.getItem('counterkey').then(value => {
  if (value != null) {
    this.setState({ counter: value });
  }
});

在 Flutter 中,使用 shared_preferences 插件来存储和访问应用程序内全局有效的键值对数据。shared_preferences 插件封装了 iOS 中的NSUserDefaults 和 Android 中的 SharedPreferences 来实现简单数据的持续存储。如果要使用该插件,可以在 pubspec.yaml 中添加依赖 shared_preferences,然后在 Dart 文件中引用包即可。

dependencies:
  flutter:
    sdk: flutter
  shared_preferences: ^0.4.3
```  ```
// Dart
import 'package:shared_preferences/shared_preferences.dart';

要实现持久数据存储,使用 SharedPreferences 类提供的 setter 方法即可。Setter 方法适用于多种原始类型数据,比如 setInt, setBool, 和 setString。要读取数据,使用 SharedPreferences 类中相应的 getter 方法。对于每一个 setter 方法都有对应的 getter 方法。比如,getInt, getBool, 和 getString。

SharedPreferences prefs = await SharedPreferences.getInstance();
_counter = prefs.getInt('counter');
prefs.setInt('counter', ++_counter);
setState(() {
  _counter = _counter;
});