mFe*_*ein 31 dependency-injection service-locator flutter flutter-provider
在搜索 Flutter 的依赖注入解决方案时,我发现了两个很棒的库:provider和get_it.
据我所知provider,它有更多的样板文件,但它非常适合 Flutter ,一旦注入的值发生变化,就Consumer可以重建Widget树的一部分。
get_it 另一方面更直接,更容易使用,并且不依赖于 Flutter,因此可以与任何 Dart 代码一起使用。
它们之间还有什么区别和限制吗?我知道这有点自以为是,但 Flutter 太新了,所以最好公开注册好处、副作用和陷阱。
Rém*_*let 34
两者的主要区别provider不是严格的依赖注入。
通过使用小部件,provider还可以:
从长远来看,所有这些都是可选的,但对您的应用程序的健康有益。
它确保您始终保持最新状态,使“意大利面条式代码”变得更加困难,并使您的不同元素更加可组合。
我只是在解释我实际发现的一个限制,可能还有其他限制。
在搜索了许多关于 Get_it 的教程和主题后,即使我们在提供程序中有依赖注入,为什么人们仍然使用 Get_it(),我无法理解 DI 方面的差异。然后我陷入了一个场景,并找到了“有什么限制”的问题的答案。
它们之间还有什么区别和限制吗?
设想:
我有嵌套小部件,小部件 A 有小部件 B,小部件 B 有小部件 C,我正在使用提供程序,并且每当值更改时都在访问每个小部件中的值。很棒,然后我制作了一个新的小部件 D,它是一个单独的小部件,它不在小部件 A 层次结构中。但是当我尝试在 Widget D 中访问相同的值时,它并没有改变。因为widget D 不在Widget A 的树中。现在来了provider 依赖注入的限制。
结论
您将使用 Get_it 访问树小部件之外的值。但是您无法使用 provider 访问更新后的值
更新答案
在上面的场景中,你需要用 Provider 包裹 app 才能访问所有的依赖。
| 归档时间: |
|
| 查看次数: |
9823 次 |
| 最近记录: |