flutter_bloc 是一個bloc第三方庫,這個庫很方便的讓你集成bloc模式
1,widget 觸發event 事件
2,bloc 接收event 事件並作出邏輯處理
3 ,並把邏輯處理結果給返回出來
4,UI展示數據
flutter_bloc 提供幾個api 根據這幾個API 就可以快速搭建bloc
BlocBuilder
BlocProvider
BlocProviderTree
BlocListener
BlocListenerTree
BlocBuilder
有三個屬性 bloc condition builder
BlocBuilder(
bloc: ,這個添加bloc dart
condition: (previousState, currentState){ return true;},//可選默認返回true
builder: (BuildContext context, List state) {}state 返回數據
)。
BlocProvider
這個可以管理全局變量
BlocProvider(
bloc:,這個添加bloc dart 把這個bloc 傳遞其它字界面使用
child:LogIn(),子類
)
子widget 通過BlocProvider.of<LogBloc>(context) 獲取這個bloc
如果涉及到push 可以通過這種模式傳遞
Navigator.push(context, new MaterialPageRoute(
builder: (Context)=>BlocProvider(
bloc:LogBloc(),
child:HomePage1(),
)));
BlocProviderTree
可以管理多個狀態
一個widget 涉及多個state 可以用它管理
BlocProviderTree(
blocProviders: [
BlocProvider<BlocA>(bloc: BlocA()),
BlocProvider<BlocB>(bloc: BlocB()),
BlocProvider<BlocC>(bloc: BlocC()),
],
child: ChildA(),
)
作者:songzhaojie
鏈接:https://www.jianshu.com/p/176eca4f8275
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。