簡而言之,我是flutter的新手,我想知道FutureProvider和StreamProvider以及ChangeNotifierProvider之間的區別,以及何時使用每一種。 預先感謝
uj5u.com熱心網友回復:
FutureProvider
簡而言之,FutureProvider用于提供一個可能在widget樹準備使用它的值時尚未準備好的值。因此,FutureProvider的主要用例是確保不會將空值傳遞給任何 widget。Future提供者有一個初始值,在Future值被解決之前,widget可以使用它。當解決時,FutureProvider將告訴它的后代,使用新的值來重建。
重要的是,這意味著依賴未來提供者的值的小部件將只重建一次。它將顯示初始值,然后顯示所提供的未來值,然后不會再次重建。
未來提供者可以被配置為在由于某種原因出現另一個來自未來的新值時再次改變。但是,如果您預期來自提供者的多個值,您可能應該使用 StreamProvider。
StreamProvider
StreamProvider 提供了,嗯,流式的值。像FutureProvider一樣,所提供的值將會自動地傳遞給所提供的值的新值,因為它們進來了。主要的區別是,這些值將根據需要觸發重新構建的次數。
ChangeNotifierProvider
你在互聯網上看到的大多數示例都在使用 ChangeNotifierProvider,它也是你可能最常使用的類。這個類基本上是實作 ChangeNotifier 的類上的一個提供者-封裝器。
根據Flutter檔案,ChangeNotifier是 "一個可以擴展或混合的類,它使用VoidCallback來提供通知的變更通知API。在實踐中,其他物件可以監聽一個ChangeNotifier物件。而且,當變化通知器得到更新的值時,它可以呼叫一個叫做'notifyListeners()'的方法,然后它的任何一個監聽器都會回應一個動作。對變化通知器的監聽是通過注冊一個回呼來完成的,當notifyListeners被呼叫時,該回呼會被呼叫。
對于帶有示例的詳細資訊,您可以遵循以下鏈接 FutureProvider。 StreamProvider。 ChangeNotifierProvider
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/326615.html
標籤:
