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

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


我们在上一章回中介绍了全局共享数据相关的内容,本章回中将对这些内容做总结.闲话休提,让我们一起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这样的类,可以同时管理多个共享数据;

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

内容概要:本文围绕“基于数据驱动的 Koopman 算子的递归神经网络模型线性化,用于纳米定位系统的预测控制研究”展开,提出了一种结合Koopman算子理论与递归神经网络(RNN)的数据驱动建模方法,旨在对非线性纳米定位系统进行有效线性化建模,并实现高精度的模型预测控制(MPC)。该方法利用Koopman算子将非线性系统映射到高维线性空间,通过递归神经网络学习系统的动态演化规律,构建可解释性强、计算效率高的线性化模型,进而提升预测控制在复杂不确定性环境下的鲁棒性与跟踪精度。文中给出了完整的Matlab代码实现,涵盖数据预处理、网络训练、模型验证与MPC控制器设计等环节,具有较强的基于数据驱动的 Koopman 算子的递归神经网络模型线性化,用于纳米定位系统的预测控制研究(Matlab代码实现)可复现性和工程应用价值。; 适合人群:具备一定控制理论基础和Matlab编程能力的研究生、科研人员及自动化、精密仪器、机器人等方向的工程技术人员。; 使用场景及目标:①解决高精度纳米定位系统中非线性动态响应带来的控制难题;②实现复杂机电系统的数据驱动建模与预测控制一体化设计;③为非线性系统控制提供一种可替代传统机理建模的有效工具。; 阅读建议:建议结合提供的Matlab代码逐模块分析实现流程,重点关注Koopman观测矩阵构造、RNN网络结构设计与MPC控制器耦合机制,同时可通过替换实际系统数据进行迁移验证,深化对数据驱动控制方法的理解与应用能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

talk_8

真诚赞赏,手有余香

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

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

打赏作者

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

抵扣说明:

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

余额充值