Flutter 官方状态管理 Provider基本使用
2023-12-27 12:38:20
当App的复杂性发展到一定程度,就会出现一个页面中不同深度的子Widget需要共享访问同一个数据状态,甚至不同页面需要共享同一个状态的情况,这时我们可能会想到InheritedWidget。InheritedWidget是 Flutter 中非常重要的一个功能型组件,它提供了一种在 Widget 树中从上到下共享数据的方式,比如我们在应用的根 Widget 中通过InheritedWidget共享了一个数据,那么我们便可以在任意子Widget 中来获取该共享的数据。而Provider就是对InheritedWidget组件的上层封装,使其更易用,更易复用。具有如下一些特点:
- 简化资源的分配/释放
- 实现懒加载
- 减少创建新类时的样板代码
- 对 Flutter 开发工具友好,使你的应用状态在 Flutter 开发工具中可见
- 提供一种常见的方式来消费这些 InheritedWidgets
在正式介绍Provider之前,让我们先来看几个Provider涉及的几个概念:
- Provider:一个提供数据源并促进应用程序内数据访问的包。 我们可以使用 ChangeNotifier 类来创建数据, 此类可变状态,并在其中的数据发生更改时通知侦听器。
- Consumer:用于访问数据提供者的值并跟踪其更改, 它驻留在数据提供者的小部件树中,并根据相关数据重建自身。 换句话说,作为数据的消费者,当数据发生变化时,它会自动更新。
- Provider.of():此方法允许开发者访问小部件树中最近的数据提供者,它使开发者能够检索相关数据并跟踪更新。
- ChangeNotifier:此类构成数据提供者的基础,通过创建一个扩展 ChangeNoti
文章来源:https://blog.csdn.net/xiangzhihong8/article/details/135242246
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!