BLoC主要是为了解耦,将UI和具体业务分离,与Swft中的ViewModel类似。
1、BLoC使用的是Stream的方法,所以的方式都是异步,而ViewModel不必全部都是异步。
2、一般情况下,setState方法会导致整个Widget刷新。
存在StreamBuilder时,setState方法只会刷新StreamBuilder包裹的控件。
3、BlocProvider
方便快速绑定BLoC类和Widget
在Widget中,通过 BlocProvider.of
获取到BLoC后,即可使用BLoC中的流功能了。
BlocProvider有点Android中的注入的感觉。
通过以上方法后,UI获取到只有真正需要显示的内容,具体的业务完全交给了BLoC去处理
参考:
1、Flutter-BLoC