第一百零六回 数据共享(状态管理)总结

本文回顾了Flutter中的数据共享,重点介绍了provider包的使用,包括创建数据共享类、关联顶层Widget和获取数据的三种方式。经验分享中提到,InheritedWidget适用于父子组件,provider适合全局共享,Consumer和Selector则在数据获取和更新方面各有优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


我们在上一章回中介绍了全局共享数据相关的内容,本章回中将对这些内容做总结.闲话休提,让我们一起Talk Flutter吧。

知识回顾

数据共享也叫状态管理,主要通过InheritedWidget类实现,不过它局限于父组件和子组件之间的数据共享。于是我们引入了三方包:provider,该包本质上是对InheritedWidget类的封装,不过它可以在任意组件之间共享数据,我们介绍了该包的使用方法和获取共享数据的方法,并且配有示例代码。

Flutter是响应式编程框架,所有组件的更新都是基于状态管理的,因此状态管理非常重要,一些三方公司和爱好者相继发布了各种状态管理包,不过综合考虑之下还是选择了provider包,它使用方便,便于理解,而且得到了官方的认可。

回顾完前面章回中的知识后,我们对这些知识做一个统一的总结。

知识总结

数据共享包,或者叫状态管理包provider在使用时主要分为三个大的步骤,详细如下:

  1. 创建数据共享类,并且在数据更新时通知监听器;
  2. 把数据共享类和顶层Widget通过ChangeNotificator关联起来;
  3. 在应用其它地方获取共享数据 ,获取的方式有三种:Provide, Consumer和Selector;

这三个步骤相当于搭建好了共享数据的框架,接下来就可以从框架中获取数据了,获取的方式有三种:

  1. Provide类通过静态方法of()直接获取共享数据 ;
  2. Consumer类通过builder属性间接获取共享数据 ;
  3. Selector类通过selector属性间接获取共享数据 ;

经验分享

我们在上面的小节中对数据共享相关的知识进行了回顾和总结,接下来分享我总结的经验:

  1. 如果只是在父子组件之间共享数据,那么使用InheritedWidget类就可以,简单轻巧,使用方便;
  2. 如果是在全局共享数据,建议使用provider包,当然也可以使用其他的包,这里不做详细介绍;
  3. 如果只是获取共享数据,那么使用Provider和它的of()方法就可以;
  4. 如果既需要获取数据又需要更新组件,那么建议使用Consumer,它的性能比Provider好;
  5. selector具备Consumer所有的功能和优点,它还提供数据类型转换的功能。主要用来转换数据类型;
  6. Consumer和Selector提供了类似Consumer2,Consumer3这样的类,可以同时管理多个共享数据;

看官们,关于"数据共享总结"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

talk_8

真诚赞赏,手有余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值