【发布时间】:2021-11-15 00:07:14
【问题描述】:
简而言之,我是 Flutter 的新手,我想知道 FutureProvider 和 StreamProvider 和 ChangeNotifierProvider 之间的区别以及何时使用它们 提前致谢
【问题讨论】:
简而言之,我是 Flutter 的新手,我想知道 FutureProvider 和 StreamProvider 和 ChangeNotifierProvider 之间的区别以及何时使用它们 提前致谢
【问题讨论】:
FutureProvider
简而言之,FutureProvider 用于提供在小部件树准备好使用其值时可能尚未准备好的值。因此,FutureProvider 的主要用例是确保不会将空值传递给任何小部件。未来提供者有一个初始值,在解决未来值之前,小部件可以使用它。解决后,FutureProvider 将使用新值告诉它的后代进行重建。
重要的是,这意味着依赖未来提供者价值的小部件只会重建一次。它将显示初始值,然后显示提供的未来值,然后不会再次重建。
如果出于某种原因,未来提供了另一个新值,则可以将未来提供者配置为再次更改。但是,如果您预计来自提供者的多个值,您应该使用StreamProvider。
流提供者
StreamProvider 提供了 Streamed 值。与 FutureProvider 一样,提供的值会在传入时自动神奇地传递给提供值的新值。主要区别在于,这些值将根据需要多次触发重新构建。
ChangeNotifierProvider
您将在 Internet 上看到的大多数示例都使用 ChangeNotifierProvider,它也是您可能最常使用的类。这个类基本上是实现 ChangeNotifier 的类的提供者包装器。
根据 Flutter 文档,ChangeNotifier 是“一个可以扩展或混合的类,它提供使用 VoidCallback 通知的更改通知 API。”实际上,其他对象可以监听 ChangeNotifier 对象。并且,当更改通知器获得更新的值时,它可以调用一个名为“notifyListeners()”的方法,然后它的任何侦听器都会以一个动作响应。监听变更通知是通过注册一个回调来完成的,当 notifyListeners 被调用时会调用这个回调。
有关示例的详细信息,您可以点击链接 FutureProvider StreamProvider ChangeNotifierProvider
【讨论】: