FutureProvider vs StreamProvider vs ChangeNotifierProvider

FutureProvider vs StreamProvider vs ChangeNotifierProvider

简而言之,我是 flutter 的新手,我想知道 FutureProvider 和 StreamProvider 以及 ChangeNotifierProvider 之间的区别以及何时使用它们 提前致谢

FutureProvider

简而言之,FutureProvider 用于提供一个值,当小部件树准备好使用它的值时,该值可能还没有准备好。因此,FutureProvider 的主要用例是确保不会将 null 值传递给任何小部件。 Future Provider 有一个初始值,在 Future 值被解析之前,小部件可以使用它。解决后,FutureProvider 将告诉它的后代使用新值进行重建。

重要的是,这意味着依赖未来提供者价值的小部件只会重建一次。它会显示初始值,然后显示提供的未来值,然后不会再次重建。

未来提供者可以配置为再次更改,如果出于某种原因,来自未来的另一个新值。但是,如果您预计来自提供者的多个值,您可能应该使用 StreamProvider.

StreamProvider

StreamProvider 提供了 Streamed 值。与 FutureProvider 一样,提供的值将自动神奇地传递所提供值的新值。主要区别在于,这些值将根据需要触发多次重建。

ChangeNotifierProvider

您在 Internet 上看到的大多数示例都在使用 ChangeNotifierProvider,它也是您可能最常使用的 class。这个 class 基本上是 class 的提供者包装器,它实现了 ChangeNotifier。

根据 Flutter 文档,ChangeNotifier 是 'a class that can be extended or mixed in that provides a change notification API using VoidCallback for notifications.' 实际上,其他对象可以监听 ChangeNotifier 对象。而且,当更改通知器获得更新值时,它可以调用一个名为 'notifyListeners()' 的方法,然后它的任何侦听器都会以一个动作响应。侦听更改通知程序是通过注册一个回调来完成的,该回调在调用 notifyListeners 时被调用。

有关示例的详细信息,您可以点击链接 FutureProvider StreamProvider ChangeNotifierProvider