在搜索 Flutter 的依赖注入(inject)解决方案时,我发现了两个很棒的库:provider
和 get_it
。
据我所知,provider
有更多样板,但它非常适合 Flutter,允许 Consumer
重建部分 Widget
树,一旦注入(inject)的值发生变化。
get_it
更直接、更易于使用,并且不依赖于 Flutter,因此可以与任何 Dart 代码一起使用。
它们之间还有更多的区别和局限吗?我知道这有点自以为是,但 Flutter 太新了,公开登记好处、副作用和陷阱是件好事。
最佳答案
两者的主要区别在于 provider
不是严格的依赖注入(inject)。
通过使用小部件,provider
还能够:
- providers 与 Flutter devtool 兼容
- 知道何时无法访问变量(作用域为树)
- 知道何时创建和销毁对象
- 同步模型 -> 模型和模型 -> UI
- 仅覆盖特定小部件树的一些值
- 自愿防止循环依赖
所有这些虽然都是可选的,但从长远来看对您的应用的健康有益。
它确保您始终保持最新状态,让“意大利面条式代码”变得更难,并使您的不同元素更具可组合性。
关于flutter - 提供商与 Get_it,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57169616/