我们在上一章回中介绍了组件之间共享数据相关的内容,本章回中将介绍 全局共享数据.闲话休提,让我们一起Talk Flutter吧。
概念介绍
我们在上一章回中介绍了使用InheritedWidget组件共享数据的方法,不过这种共享只限于父组件与子组件之间。本章回中将介绍一种全局共享数据的方式,这里说的全局是指在任意组件之间。我们需要借助provider包实现全局数据共享功能,本章回中将详细介绍这方面的内容。
此外,这种共享数据的方式也叫状态管理,因为在Flutter中更新数据都是通过更新状态实现的,类似StatefulWidget组件中的通过setState()方法更新组件状态。
实现方法
我们首先介绍provider包,明白包中的内容后再介绍实现共享数据的方法,provider包提供了相关的类来实现数据共享功能,主要包含5个类,下面是它们的详细功能:
- ChangeNotifier类:主要用来实现数据共享类,它的核心功能是提供notifyListeners()方法来通知其它组件更新数据;
- ChangeNotifierProvider类:主要用来把数据共享类和监听数据变化的组件关联起来;
- Provider类:主要用来获取共享数据,主要通过它的of()方法来获取数据共享类的实例;
- Consumer类:主要用来获取共享数据,自带
本文介绍了Flutter中全局共享数据的实现,即状态管理,重点讲解了provider包的使用,包括ChangeNotifier、ChangeNotifierProvider等核心类的功能。通过创建数据共享类,绑定到顶层Widget,以及使用Provider、Consumer、Selector获取数据,实现跨组件的数据更新和通知。同时,文章总结了使用provider包的经验,强调其背后观察者模式的设计,并提到了其他状态管理解决方案。
订阅专栏 解锁全文
3万+

被折叠的 条评论
为什么被折叠?



