Flutter-BLoC

BLoC主要是为了解耦,将UI和具体业务分离,与Swft中的ViewModel类似。

1、BLoC使用的是Stream的方法,所以的方式都是异步,而ViewModel不必全部都是异步。

2、一般情况下,setState方法会导致整个Widget刷新。

存在StreamBuilder时,setState方法只会刷新StreamBuilder包裹的控件。

3、BlocProvider

方便快速绑定BLoC类和Widget

在Widget中,通过 BlocProvider.of(context); 快速的获取指定的BLoC和次Widget的父和祖宗的Widget的BLoC对象,同样可以获取App创建时的BLoC对象。

获取到BLoC后,即可使用BLoC中的流功能了。

BlocProvider有点Android中的注入的感觉。


通过以上方法后,UI获取到只有真正需要显示的内容,具体的业务完全交给了BLoC去处理

参考:

1、Flutter-BLoC

你可能感兴趣的:(Flutter-BLoC)