返回

Flutter——从ValueListenableBuilder到Provider(上)

IOS

前言

Flutter 是一款免费开源的UI工具包,用于创建高性能移动应用。Flutter 可以使用户轻松地构建跨平台的应用程序,适用于iOS、Android和Web。Flutter 使用了一种名为Dart的语言,Dart是一种面向对象的编程语言,语法简洁且易于学习。Flutter 还提供了一个丰富的库和工具集,使开发人员可以轻松地构建复杂的应用程序。

ValueListenableBuilder与Provider

ValueListenableBuilder

ValueListenableBuilder小部件通过使用ValueListenable侦听对象中的变化并更新其孩子来简化响应式编程。ValueListenable是一个对象,它可以被侦听以获取其值的更改。当值的更改被检测到时,ValueListenableBuilder小部件将调用其builder函数来重建其孩子。

可以使用ValueListenableBuilder小部件来侦听来自各种来源的更改,例如:

  • 来自InheritedWidget小部件的更改
  • 来自Stream的更改
  • 来自Future的更改
  • 来自ChangeNotifier的更改

Provider

Provider是小部件(或其祖先)的集合,这些小部件位于所有子小部件的开头,并用Provider.value小部件包裹着要传递的值。当Provider小部件发生更改时,其子小部件将自动重建。

Provider可以用于在Flutter应用程序中管理状态。状态是应用程序中随着时间而改变的数据。状态可以存储在各种对象中,例如:

  • InheritedWidget小部件
  • ChangeNotifier对象
  • Redux存储

ValueListenableBuilder与Provider的比较

ValueListenableBuilder和小部件和Provider是小部件,用于在Flutter应用程序中实现响应式编程。两者之间存在一些关键差异:

  • ValueListenableBuilder小部件用于侦听来自各种来源的更改,而Provider用于管理状态。
  • ValueListenableBuilder小部件更轻量级,而Provider更强大。
  • ValueListenableBuilder小部件更适合于侦听来自InheritedWidget小部件、Stream、Future和ChangeNotifier的更改,而Provider更适合于管理状态。

结论

ValueListenableBuilder和小部件和Provider都是用于在Flutter应用程序中实现响应式编程的强大工具。ValueListenableBuilder小部件更轻量级,而Provider更强大。ValueListenableBuilder小部件更适合于侦听来自InheritedWidget小部件、Stream、Future和ChangeNotifier的更改,而Provider更适合于管理状态。