stream_provider_cache

一个简单的 Flutter 应用程序,用于演示 StreamProvider 与 SharedPreferences 的结合使用,以缓存 provider 的值。

特点

  • Stream Provider 缓存。
  • 能够通过 shared preference 键触发刷新。
  • 用于访问和更新 provider 的通用方法。
  • 用于访问和更新 shared preferences 的通用方法。

缓存过程

  • 从缓存中获取 provider 的值。
  • 从最后一个缓存的项开始添加新项。
  • 如果没有缓存的项,则从头开始添加新项。
  • 将项缓存到 shared preferences 中。
  • 根据搜索 provider 的值过滤项。
  • 返回已过滤的项列表。

注意事项

需要缓存的数据模型必须实现以下方法,才能序列化和反序列化模型。

  • Map<String, dynamic> toJson()
  • Object.fromJson(Map<String, dynamic> json)

当使用带有多个参数的 provider families 时,用作 provider 参数的模型需要实现以下方法,以便 riverpod 能够区分不同的 provider 实例,请查看 grid_item.dart 文件中的 `GridItemsProviderArgs` 实现。

  • bool operator ==(Object other)
  • int get hasCode

依赖项

  • flutter_riverpod
  • shared_preference
  • easy_search_bar

目录结构

lib
└── src
    ├── models
    ├── pages
    ├── services
    ├── utils
    └── widgets

预览

主页 网格页 详情页

GitHub

查看 Github