Skip to content

Bloc4

Bloc的用法摘要

Reference:https://bloclibrary.dev/#/flutterbloccoreconcepts?id=blocprovider

以下是文章中的重點:

  1. BlocBuilder
    - BlocBuilder是一個Flutter小部件,需要一個Bloc和一個builder函數,用於響應新狀態構建小部件。
    - builder函數應該是一個純函數,根據狀態返回一個小部件。
    - 如果 buildWhen 返回真, builder 將被調用 state 並且小部件將重建。 如果 buildWhen 返回假, builder 不會被調用 state 並且不會發生重建。
    - buildWhen參數用於更精細地控制何時調用builder函數。

    BlocBuilder<BlocA, BlocAState>(
        buildWhen: (previousState, state) {
            // return true/false to determine whether or not
            // to rebuild the widget with state
        },
        builder: (context, state) {
            // return widget here based on BlocA's state
        }
        )
    
  2. BlocProvider
    - BlocProvider用於創建和提供Bloc的實例,通常用於整個小部件樹。
    - 可以通過BlocProvider.value提供已有的Bloc實例。

  3. MultiBlocProvider
    - MultiBlocProvider用於合並多個BlocProvider,以提供多個不同的Bloc實例。

  4. BlocListener
    - BlocListener是一個Flutter小部件,用於監聽Bloc的狀態變化,並執行相應的操作。
    - 可以通過listenWhen參數精細控制何時調用listener函數。

  5. MultiBlocListener
    - MultiBlocListener合並多個BlocListener,以提高代碼可讀性。

  6. BlocConsumer
    - BlocConsumer提供了一個builder和listener,用於響應新的狀態。
    - 可以通過listenWhen和buildWhen參數更精細地控制何時調用listener和builder函數。

  7. RepositoryProvider
    - RepositoryProvider用於提供儲存庫(Repository)的實例,用於依賴注入。
    - 可以通過context.read()或RepositoryProvider.of(context)獲取儲存庫實例。

  8. MultiRepositoryProvider
    - MultiRepositoryProvider合並多個RepositoryProvider,以提供多個不同的儲存庫實例。

  9. 使用示例
    - 示例展示了如何使用BlocProvider來創建並提供Bloc的實例,並如何在Flutter應用中使用它來管理狀態。
    - 示例還展示了如何注入依賴項(Repository)並在應用中使用它們。


Last update : 13 novembre 2024
Created : 13 novembre 2024

Comments

Comments