Flutter 官方状态管理 Provider基本使用

当App的复杂性发展到一定程度,就会出现一个页面中不同深度的子Widget需要共享访问同一个数据状态,甚至不同页面需要共享同一个状态的情况,这时我们可能会想到InheritedWidget。InheritedWidget是 Flutter 中非常重要的一个功能型组件,它提供了一种在 Widget 树中从上到下共享数据的方式,比如我们在应用的根 Widget 中通过InheritedWidget共享了一个数据,那么我们便可以在任意子Widget 中来获取该共享的数据。而Provider就是对InheritedWidget组件的上层封装,使其更易用,更易复用。具有如下一些特点:

  • 简化资源的分配/释放
  • 实现懒加载
  • 减少创建新类时的样板代码
  • 对 Flutter 开发工具友好,使你的应用状态在 Flutter 开发工具中可见
  • 提供一种常见的方式来消费这些 InheritedWidgets

在正式介绍Provider之前,让我们先来看几个Provider涉及的几个概念:

  • Provider:一个提供数据源并促进应用程序内数据访问的包。 我们可以使用 ChangeNotifier 类来创建数据, 此类可变状态,并在其中的数据发生更改时通知侦听器。
  • Consumer:用于访问数据提供者的值并跟踪其更改, 它驻留在数据提供者的小部件树中,并根据相关数据重建自身。 换句话说,作为数据的消费者,当数据发生变化时,它会自动更新。
  • Provider.of():此方法允许开发者访问小部件树中最近的数据提供者,它使开发者能够检索相关数据并跟踪更新。
  • ChangeNotifier:此类构成数据提供者的基础,通过创建一个扩展 ChangeNoti

你可能感兴趣的:(Flutter入门与实战,flutter,javascript,前端)