flutter - 提供者与 Get_it
问题描述
在寻找 Flutter 的依赖注入解决方案时,我发现了两个很棒的库:provider
和get_it
.
据我所知,provider
它有更多的样板,但它非常适合 Flutter ,一旦注入的值发生变化,就可以Consumer
重建树的某些部分。Widget
get_it
另一方面更直接,更易于使用,并且不依赖于 Flutter,因此可以与任何 Dart 代码一起使用。
它们之间是否还有更多的区别和限制?我知道这有点固执己见,但 Flutter 太新了,公开注册好处、副作用和陷阱是件好事。
解决方案
两者的主要区别在于provider
不是严格的依赖注入。
通过使用小部件,provider
还能够:
- 提供者与 Flutter 开发工具兼容
- 知道何时无法访问变量(范围为树)
- 知道何时创建和处置对象
- 同步模型 -> 模型和模型 -> UI
- 仅覆盖特定小部件树的某些值
- 自愿防止循环依赖
从长远来看,所有这些都是可选的,但对您的应用程序的健康有益。
它确保您始终保持最新状态,使“意大利面条代码”变得更加困难,并使您的不同元素更具可组合性。
推荐阅读
- azure - 带有 Vue 项目路由的 Azure 静态 Web 应用程序不起作用
- r - Matching 包中的这个错误是什么意思?
- c++ - ld.exe:找不到-lasan ld.exe:找不到-lubsan
- html - 如何删除由引导程序创建的这个白条?
- binary - 用于将每 2 位从二进制转换为十进制的一维字符串数组 例如:str [] = {"10 1111 1010" } => 2 33 22
- windows - EC2 快照会备份没有卷的实例吗?
- php - 在 PHP 中读取包含非英文字符的文件时出现问题
- fail2ban - 无法将 sendmail“超出连接速率限制”与 fail2ban 匹配
- java - 同一类的多个外键
- angular-openlayers - 我无法使用 Angular OpenLayers 和 WMTS 服务加载地图