Flutter之Bloc原理


bloc核心库

Events
States
Transitions
Streams
Blocs
BlocDelegate

flutter_bloc库

Flutter Widgets

1,BlocBuilder

它是一个Flutter Widget,需要Bloc和builder()参数,关联State,根据每一种State构建Widget,builder()方法,返回Widget。

BlocBuilder<BlocA, BlocAState>(
  bloc: blocA
  builder: (context, state) {
    // return widget here based on BlocA's state
  }
)
2,BlocProvider

它是一个Flutter Widget,通过BlocProvider.of<T>(context),向子视图提供bloc对象。

BlocProvider(
  create: (BuildContext context) => BlocA(),
  child: ChildA(),
);

create()方法,返回Bloc,单例bloc提供给复杂Widget树。在子视图中,通过BlocProvider.of<BlocA>(context)获取bloc对象。
MutiBlocProvider,向子视图提供多个Bloc。

3,BlocListener

Flutter Widget,根据State状态监听,listener,如导航,SnackBar,Dialog等,除初始状态,其他状态listener都可以监听。
和builder的区别,方法void,不需要返回Widget。condition,前后State比较。
MultiBlocListener,多个Bloc状态监听。

4,BlocConsumer

暴漏builder和listener的方法,根据状态实现Widget和监听,在同时需要rebuild视图和执行其他状态改变时使用。


任重而道远

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

推荐阅读更多精彩内容