provider和get
provider的状态管理的组件:
Selector:provider要提前注册进去
ListenableBuilder:
ValueListenableBuilder:
Consumer
Consumer:
1、使用Dart的Stream进行发布订阅。它的主要特点是极简且高效,特别适合那些觉得其他状态管理库(如Provider)过于繁琐的用户。Consumer通过发布订阅模式和StatefulWidget,提供了一种不需要顶层Provider包裹的方式来管理状态,这使得项目可以更容易地创建子模块的独立状态管理
2、性能优化
Consumer的一个优势是它可以帮助优化性能。通过强制使用者描述每个订阅所使用的对象,Consumer可以拦截不必要的更新,从而减少无效的UI重建。此外,Consumer仅更新数据变化的局部,不需要整个UI的重绘,这在一定程度上提高了应用的性能
3、与其他状态管理工具的比较
与Selector相比,Consumer会对其所有子孙组件进行重建,即使只有部分数据发生变化。而Selector则更高级,允许你选择性地监听数据模型中的特定字段,只有当这些字段发生变化时才会触发重建。因此,Selector通常比Consumer更高效,因为它可以减少不必要的重建