Flutter 状态管理(Bloc)

好几天一直看Flutter的设计模型,因为flutter 是靠State 来刷新UI的,这样就出现怎么才能把UI跟逻辑隔离呢,iOS 有mvc  mvvm  mvp 等如果直接用iOS 的思想是走不通的,自己也查了一下Flitter 的状态管理有 StatefulWidget 和 setState() ,InheritedWidget,Scoped model ,BLoC  ,Redux 等等,在这里介绍一下它们的区别 主讲bloc,这是官方推荐的管理模式

好的框架要求

    能管理好全局状态和本地状态

   UI 逻辑和业务逻辑应该是分离的

   在框架的帮助下可以写出高质量的代码

   框架应该提升 App 的性能

   框架要容易理解,便于扩展

一区别

1. StatefulWidget 和 setState() 

可以管理state ,相对于管理数据较少的界面还可以,涉及到数据量大且共用的数据等就显着不是那么友好了,

主要区别:UI 逻辑和业务逻辑没有分离 且只能管理本地状态

2. InheritedWidget

数据共享,可以把这个状态共享给多个界面使用,InheritedWidget 只能管理全局状态,而且没有涉及到 UI 逻辑和业务逻辑的分离,大量人员合作开发不建议使用

3. Scoped model

可以对全局状态进行管理,数据从上到下传递,也可以从下到上传递,

但是数据和UI没有隔离,不便维护,造成单个dart 臃肿 ,无法管理本地状态

4 BLoc

响应式编程,相当于mvvm ,既能管理本地状态也能管理全局状态,可以从上往下,也可以从下往上传,维护方便,数据于UI隔离,目前比较好的框架,

现在你知道怎么选择了吗下篇重点讲bloc实践下一节Flitter—bloc

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。