Flutter provider 工具类::状态管理传递
https://github.com/rrousselGit/provider/blob/master/resources/translations/zh-CN/README.md
对 InheritedWidget 组件的上层封装,使其更易用,更易复用。
使用 provider
而非手动书写 InheritedWidget,有以下的优势:
- 简化的资源分配与处置
- 懒加载
- 创建新类时减少大量的模板代码
- 支持 DevTools
- 更通用的调用 InheritedWidget 的方式(参考 Provider.of/Consumer/Selector)
- 提升类的可扩展性,整体的监听架构时间复杂度以指数级增长(如 ChangeNotifier, 其复杂度为 O(N))
想了解更多 provider
相关内容,请参考 文档
更多内容:
- Flutter 官方的状态管理文档, 展示如何将
provider
与 ChangeNotifier 结合使用。 - Flutter 架构示例, 使用
provider
与 ChangeNotifier 实现的具体应用。 - flutter_bloc 和 Mobx,在 BLoC 与 Mobx 架构中使用
provider
。
Provider
If you're using the provider package, you can wrap your top-level widget in a provider that manages the database instance:
void main() {
runApp(
Provider<MyDatabase>(
create: (context) => MyDatabase(),
child: MyFlutterApp(),
dispose: (context, db) => db.close(),
),
);
}
Your widgets would then have access to the database using Provide
分类: 默认 标签: 发布于: 2022-06-17 17:32:15, 更新于: 2022-06-17 17:33:40