已注入

Hydrated 提供了一个 BehaviorSubject,它可以自动持久化到 Flutter 的本地存储并在创建时进行水合!

易于使用

所有值都通过shared_preferences持久化,并通过自动注入恢复。

final count$ = HydratedSubject<int>("count", seedValue: 0);

/// count$ will automagically be hydrated with 42 next time it is created
count$.add(42);

为BLoC做好准备

class HydratedBloc {
  final _count$ = HydratedSubject<int>("count", seedValue: 0);

  ValueObservable<int> get count$ => _count$.stream;
  Sink<int> get setCount => _count$.sink;

  dispose() {
    _count$.close();
  }
}

支持简单类型和序列化类

我们支持所有shared_preferences类型。

  • 整数
  • 双精度
  • 布尔值
  • 字符串
  • List<String>
final count$ = HydratedSubject<int>("count");

我们还支持使用hydratepersist参数的序列化类。

final user$ = HydratedSubject<User>(
  "user",
  hydrate: (String s) => User.fromJSON(s),
  persist: (User user) => user.toJSON(),
);

可靠

Hydrated已对所有支持的类型进行了模拟测试,并由其创建者亲自使用。

tests

演示

hydrated

GitHub

https://github.com/lukepighetti/hydrated