Flutter 状态管理

Dart | 什么是Stream
Flutter | 状态管理探索篇——Scoped Model(一)
Flutter | 状态管理探索篇——Redux(二)
Flutter | 状态管理探索篇——BLoC(三)
Flutter | 状态管理拓展篇——RxDart(四)
Flutter | 状态管理特别篇 —— Provide
关于Provide,上文评论中说到官方已弃用,推荐使用:https://github.com/rrousselGit/provider

[译]让我来帮你理解和选择Flutter状态管理方案
这篇推荐使用BLoC加Redux

第三方开源的bloc库:bloc,flutter版本的叫flutter_bloc库,官方文档:bloc官方文档

在项目中使用flutter_bloc,在pubspec.yaml中添加引用依赖:

dependencies:  
flutter_bloc: ^0.18.2
equatable: ^0.2.6

flutter_bloc自动引用依赖bloc,bloc又引用依赖rxdart和meta。
equatable好像重载了==,用来对比类实例。


唉,太多选择反而不好,都不知道选择哪种。
用了一下fish-redux放弃了,实在是太重太麻烦。
目前的选择是先暂时学习bloc吧。

bloc的本质


状态管理的目的就是为了让界面与业务分离。
界面根据state来显示,有操作时发出Action或者Event,而不处理实际 的业务,业务交给上层处理。
bloc在界面中有操作发生时使用dispatch发出Event事件,fish-redux也是类似使用dispatch,只不过发出的叫Action动作而已。
当dispatch发出事件时mapEventToState即可收到事件,此时将event根据业务转换为state,state会传递回给界面进行显示。
bloc模块其实就是类似mvvm中的ViewModel,负责所有业务的处理。
flutter_bloc+bloc库内部封装了stream和RxDart来实现BLoC,所以直接使用这个库就可以了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容