簡體   English   中英

Provider vs ValueNotifier Flutter

[英]Provider vs ValueNotifier Flutter

有人可以解釋使用Provider包和使用ValueNofifier之間的區別嗎?

現在我在我的應用程序中使用ValueNotifierValueListenableBuilder ,我發現這與使用 Providers 和 Consumers 之間有很多相似之處。 兩者都有使用提供的最新數據重建小部件的偵聽器,並且都使用 ChangeNotifier 和 notifyListeners。

那么有什么區別,我們什么時候應該選擇其中一個而不是另一個?

謝謝

就我在應用程序中使用這兩種東西的經驗而言,主要區別在於

Provider可以在應用程序的任何部分提供更改,就像使用notifyListener()任何地方一樣,並且可以使用應用程序中的任何地方訪問。 但是,在使用全局ValueNotifier可能會出現錯誤,這是不推薦的。 從技術上講,當代碼變大時,不會給您太多的錯誤跟蹤控制權。

Provider(
  create: (_) => MyModel(),
  child: ...
)

其他主要區別:

Provider使您能夠使用多個 Provider,並且只能存儲在單個 Provider 數組中,但是,在ValueNotifier ,您一次只能使用一個值。 要使用多個 ValueNotifiers,你必須創建多個 ValueNotifiers,然后每次都處理它。

MultiProvider(
  providers: [
    Provider<Something>(create: (_) => Something()),
    Provider<SomethingElse>(create: (_) => SomethingElse()),
    Provider<AnotherThing>(create: (_) => AnotherThing()),
  ],
  child: someWidget,
)

它基本上是將您的業務邏輯與您的正常應用程序邏輯分開的巧妙方式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM