Bloc4
Bloc的用法摘要¶
Reference:https://bloclibrary.dev/#/flutterbloccoreconcepts?id=blocprovider
以下是文章中的重點:
-
BlocBuilder:
- BlocBuilder是一個Flutter小部件,需要一個Bloc和一個builder函數,用於響應新狀態構建小部件。
- builder函數應該是一個純函數,根據狀態返回一個小部件。
- 如果 buildWhen 返回真, builder 將被調用 state 並且小部件將重建。 如果 buildWhen 返回假, builder 不會被調用 state 並且不會發生重建。
- buildWhen參數用於更精細地控制何時調用builder函數。 -
BlocProvider:
- BlocProvider用於創建和提供Bloc的實例,通常用於整個小部件樹。
- 可以通過BlocProvider.value提供已有的Bloc實例。 -
MultiBlocProvider:
- MultiBlocProvider用於合並多個BlocProvider,以提供多個不同的Bloc實例。 -
BlocListener:
- BlocListener是一個Flutter小部件,用於監聽Bloc的狀態變化,並執行相應的操作。
- 可以通過listenWhen參數精細控制何時調用listener函數。 -
MultiBlocListener:
- MultiBlocListener合並多個BlocListener,以提高代碼可讀性。 -
BlocConsumer:
- BlocConsumer提供了一個builder和listener,用於響應新的狀態。
- 可以通過listenWhen和buildWhen參數更精細地控制何時調用listener和builder函數。 -
RepositoryProvider:
- RepositoryProvider用於提供儲存庫(Repository)的實例,用於依賴注入。
- 可以通過context.read()或RepositoryProvider.of (context)獲取儲存庫實例。 -
MultiRepositoryProvider:
- MultiRepositoryProvider合並多個RepositoryProvider,以提供多個不同的儲存庫實例。 -
使用示例:
- 示例展示了如何使用BlocProvider來創建並提供Bloc的實例,並如何在Flutter應用中使用它來管理狀態。
- 示例還展示了如何注入依賴項(Repository)並在應用中使用它們。
Created : 13 novembre 2024