首页 > 解决方案 > 提供者与 Get_it

问题描述

在寻找 Flutter 的依赖注入解决方案时,我发现了两个很棒的库:providerget_it.

据我所知,provider它有更多的样板,但它非常适合 Flutter ,一旦注入的值发生变化,就可以Consumer重建树的某些部分。Widget

get_it另一方面更直接,更易于使用,并且不依赖于 Flutter,因此可以与任何 Dart 代码一起使用。

它们之间是否还有更多的区别和限制?我知道这有点固执己见,但 Flutter 太新了,公开注册好处、副作用和陷阱是件好事。

标签: flutterdependency-injectionservice-locatorflutter-provider

解决方案


两者的主要区别在于provider不是严格的依赖注入

通过使用小部件,provider还能够:

  • 提供者与 Flutter 开发工具兼容
  • 知道何时无法访问变量(范围为树)
  • 知道何时创建和处置对象
  • 同步模型 -> 模型和模型 -> UI
  • 仅覆盖特定小部件树的某些值
  • 自愿防止循环依赖

从长远来看,所有这些都是可选的,但对您的应用程序的健康有益。

它确保您始终保持最新状态,使“意大利面条代码”变得更加困难,并使您的不同元素更具可组合性。


推荐阅读