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,所以直接使用这个库就可以了。

你可能感兴趣的:(Flutter 状态管理)