Flutter——从ValueListenableBuilder到Provider(上)
2023-11-30 21:13:05
前言
Flutter 是一款免费开源的UI工具包,用于创建高性能移动应用。Flutter 可以使用户轻松地构建跨平台的应用程序,适用于iOS、Android和Web。Flutter 使用了一种名为Dart的语言,Dart是一种面向对象的编程语言,语法简洁且易于学习。Flutter 还提供了一个丰富的库和工具集,使开发人员可以轻松地构建复杂的应用程序。
ValueListenableBuilder与Provider
ValueListenableBuilder
ValueListenableBuilder小部件通过使用ValueListenable
可以使用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