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 相关内容,请参考 文档

更多内容:

 

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