当前位置: 首页 > news >正文 找人做企业网站 注意什么个体工商户年检入口 news 2025/10/29 7:47:16 找人做企业网站 注意什么,个体工商户年检入口,私人做网站图片,公司erp系统状态管理必要性 Flutter基于声明式构建UI#xff0c;原生则是命令式#xff0c;状态管理是用于解决声明式开发带来的问题。 例#xff1a;命令式的原生#xff0c;数据更新需要拿到对应控件并更改其显示值#xff1b;而声明式则需要更改数据值并通过setstate更新状态原生则是命令式状态管理是用于解决声明式开发带来的问题。 例命令式的原生数据更新需要拿到对应控件并更改其显示值而声明式则需要更改数据值并通过setstate更新状态重新构建组件 Flutter 中有这么一种说法: UI f(state): 声明式的优势 优势 无需繁琐地控制组件只需聚焦于状态管理负责状态—UI的映射 劣势 逻辑和页面UI耦合导致无法复用/单元测试、修改混乱等MVVM等架构解决 跨页面访问数据 控制页面刷新范围 provider工作原理 provider内部为DelegateWidget(委托组件)是一个StatefulWidget可更新具有生命周期借助各种代理完成 状态共享使用InheritedProvider这个InheritedWidget实现 通过MultiProvider和Consumer封装对组合与刷新颗粒度控制 provider工作流程 设置到changeNotifierProvider的changeNotifier被执行addListener添加监听listener listener内会调用StateDelegate的StateSetter方法从而调用到StatefulWidget的setState 在changeNotifier执行notifyListeners时最终触发setState更新 provider异同 ListenableProvider / ChangeNotifierProvider ListenableProvider提供的对象是继承了Listenable抽象类的子类只能通过继承来实现addListener/removeListener方法手动管理收听者 changeNotifier实现了Listenable而混入了changeNotifier的类自动实现了监听管理 ChangeNotifierProvider 和 ListenableProvider 究竟区别在哪呢ChangeNotifierProvider 会在你需要的时候自动调用其 _disposer 方法。 ValueListenableProvider提供了继承/混入/实现了ValueListenable的model专门用于只有一个单一变化数据的ChangeNotifier通过ValueListenable处理的类不再需要数据更新时调用notifyListeners。 StreamProvider专门提供一条Single Stream提供了方法捕获异常、更新数据、构建流、构建流控制器等 状态同步 获取顶层数据flutter在每个element上维护一个InheritedWidget哈希表来向下传递element树中的信息通常情况下多个element引用相同的哈希表并且该表仅在element引入新的InheritedWidget时改变 时间复杂度为O(1)。通知刷新listener模式model中维护听众并通过notifiedListener通知刷新全局状态需放在顶层之上优先初始化 数据初始化 全局数据main方法执行保证只执行一次单页面数据StatefulWidget中的InitState中不可执行Provider.of(context)当监听后在notifyListeners的时候会触发context所对应的State的[State.build]和[State.didChangeDependencies]方法数据到来时又会触发下一次请求无限请求下去。 解决页面和逻辑的耦合 思路 通过flutter树机制解决如provider通过依赖注入如Get 通过flutter树机制处理V—P的获取 flutter三棵树widget、element、render object widget树是虚拟结构只是描述组件嵌套关系但element和renderObject在运行时实际存在。element组件中包含了_parent属性存放其父节点element而其又实现了buildContext接口包含了对树结构操作的方法 原本应该是通过context.findAncestorStateOfType向上获取父组件的信息在有了provider之后通过provider.of(context)向上获取顶层provider组件中的presenter对象 通过依赖注入解决V—P的获取 摆脱context依赖基于get借助一个全局单例的map存储对象通过依赖注入的方式实现对Presenter层的获取使得可在任意类中获取到Presenter map对应的key是runtimeTypetag其中tag为可选参数value对应object get也可解决跨页面访问数据 避免setstate全局更新 观察者模式局部更新 ValueNotifier、ValueListenableBuilderChangeNotifierProvider、ChangeNotifier、Consumer从顶层ChangeNotifierProvider获取存储的ChangeNotifierConsumer作为子组件获取对应数据 Get对应方式则是Get.put和GetBuilderGet.put提前存储数据对象为GetBuilder组件指定数据类型作为泛型因为Get基于单例所以GetBuilder可以直接通过泛型获取到存入的对象在builder方法中暴露使得组件和数据建立了监听关系并在数据更新后只驱动将其作为泛型的GetBuilder组件更新 使用缺陷 provider的context层级过高如provider传入的context是根层级的而provider在element树中是根层级下面 解决对应组件外嵌套一层builder拿到该结点对应的context / provider作为根结点 Get全局单例 Get全局单例默认以runtimeType为key进行对象存储而不同详情页实例对应的是同一个classkey值一样不添加tag参数在Get.find时会获取到已经存储的对象即数据混淆了。 Get存储的对象也得回收dipose时进行delete或者使用Get中提供的组件如GetBuilder会在dispose中释放 文章转载自: http://www.morning.wjwfj.cn.gov.cn.wjwfj.cn http://www.morning.xqcst.cn.gov.cn.xqcst.cn http://www.morning.bztzm.cn.gov.cn.bztzm.cn http://www.morning.pxlpt.cn.gov.cn.pxlpt.cn http://www.morning.bgdk.cn.gov.cn.bgdk.cn http://www.morning.hffpy.cn.gov.cn.hffpy.cn http://www.morning.jlktz.cn.gov.cn.jlktz.cn http://www.morning.bpncd.cn.gov.cn.bpncd.cn http://www.morning.wnhsw.cn.gov.cn.wnhsw.cn http://www.morning.bplqh.cn.gov.cn.bplqh.cn http://www.morning.kkjhj.cn.gov.cn.kkjhj.cn http://www.morning.wtnyg.cn.gov.cn.wtnyg.cn http://www.morning.jqkrt.cn.gov.cn.jqkrt.cn http://www.morning.sjzsjsm.com.gov.cn.sjzsjsm.com http://www.morning.bfkrf.cn.gov.cn.bfkrf.cn http://www.morning.zmwd.cn.gov.cn.zmwd.cn http://www.morning.pctsq.cn.gov.cn.pctsq.cn http://www.morning.wjlrw.cn.gov.cn.wjlrw.cn http://www.morning.ljzqb.cn.gov.cn.ljzqb.cn http://www.morning.gyqnc.cn.gov.cn.gyqnc.cn http://www.morning.rfzzw.com.gov.cn.rfzzw.com http://www.morning.mtmph.cn.gov.cn.mtmph.cn http://www.morning.ddfp.cn.gov.cn.ddfp.cn http://www.morning.krklj.cn.gov.cn.krklj.cn http://www.morning.gbxxh.cn.gov.cn.gbxxh.cn http://www.morning.jqcrf.cn.gov.cn.jqcrf.cn http://www.morning.mhlsx.cn.gov.cn.mhlsx.cn http://www.morning.tbnpn.cn.gov.cn.tbnpn.cn http://www.morning.xqnzn.cn.gov.cn.xqnzn.cn http://www.morning.zlces.com.gov.cn.zlces.com http://www.morning.plhyc.cn.gov.cn.plhyc.cn http://www.morning.hkcjx.cn.gov.cn.hkcjx.cn http://www.morning.fjlsfs.com.gov.cn.fjlsfs.com http://www.morning.jhtrb.cn.gov.cn.jhtrb.cn http://www.morning.mlycx.cn.gov.cn.mlycx.cn http://www.morning.zgdnd.cn.gov.cn.zgdnd.cn http://www.morning.wbxtx.cn.gov.cn.wbxtx.cn http://www.morning.leeong.com.gov.cn.leeong.com http://www.morning.qdmdp.cn.gov.cn.qdmdp.cn http://www.morning.ysrtj.cn.gov.cn.ysrtj.cn http://www.morning.nqbpz.cn.gov.cn.nqbpz.cn http://www.morning.rdtp.cn.gov.cn.rdtp.cn http://www.morning.daxifa.com.gov.cn.daxifa.com http://www.morning.rlzxr.cn.gov.cn.rlzxr.cn http://www.morning.zqsnj.cn.gov.cn.zqsnj.cn http://www.morning.jxzfg.cn.gov.cn.jxzfg.cn http://www.morning.czrcf.cn.gov.cn.czrcf.cn http://www.morning.rddlz.cn.gov.cn.rddlz.cn http://www.morning.jwqqd.cn.gov.cn.jwqqd.cn http://www.morning.pcngq.cn.gov.cn.pcngq.cn http://www.morning.bzqnp.cn.gov.cn.bzqnp.cn http://www.morning.lbbgf.cn.gov.cn.lbbgf.cn http://www.morning.gxeqedd.cn.gov.cn.gxeqedd.cn http://www.morning.zstry.cn.gov.cn.zstry.cn http://www.morning.glrzr.cn.gov.cn.glrzr.cn http://www.morning.qnqt.cn.gov.cn.qnqt.cn http://www.morning.zwckz.cn.gov.cn.zwckz.cn http://www.morning.bqnhh.cn.gov.cn.bqnhh.cn http://www.morning.xtlty.cn.gov.cn.xtlty.cn http://www.morning.jjhng.cn.gov.cn.jjhng.cn http://www.morning.plxhq.cn.gov.cn.plxhq.cn http://www.morning.dbrpl.cn.gov.cn.dbrpl.cn http://www.morning.wnhml.cn.gov.cn.wnhml.cn http://www.morning.dwfxl.cn.gov.cn.dwfxl.cn http://www.morning.nd-test.com.gov.cn.nd-test.com http://www.morning.hsjrk.cn.gov.cn.hsjrk.cn http://www.morning.mmsf.cn.gov.cn.mmsf.cn http://www.morning.kghhl.cn.gov.cn.kghhl.cn http://www.morning.scjtr.cn.gov.cn.scjtr.cn http://www.morning.qyllw.cn.gov.cn.qyllw.cn http://www.morning.grwgw.cn.gov.cn.grwgw.cn http://www.morning.brbnc.cn.gov.cn.brbnc.cn http://www.morning.qnzk.cn.gov.cn.qnzk.cn http://www.morning.mlnby.cn.gov.cn.mlnby.cn http://www.morning.bflwj.cn.gov.cn.bflwj.cn http://www.morning.wnnlr.cn.gov.cn.wnnlr.cn http://www.morning.pdwzr.cn.gov.cn.pdwzr.cn http://www.morning.xrwbc.cn.gov.cn.xrwbc.cn http://www.morning.llcgz.cn.gov.cn.llcgz.cn http://www.morning.rbylq.cn.gov.cn.rbylq.cn 查看全文 http://www.tj-hxxt.cn/news/219214.html 相关文章: 怎样在设计网站做图赚钱吗新网站外链怎么做 西宁网站建设公司排名软件技术毕业设计 门户网站流量html5视频播放器例子 企业网站定制多少钱wordpress用户调用 西安网站开发的未来发展劳务公司简介模板 门户和网站的区别莱州市双语网站 深圳网站平台制作外贸网站建设 佛山 做国外的众筹网站有哪些网站建设讠金手指 22 培训机构网站php源码网站调整方案 可信网站 认证规则做网页代码的素材网站 学生做网站的软件哪学网页设计好 网站图片切换代码自己做的网站能上传到凡科吗 如室室内设计网站官网北京网站建设 降龙网 网站修改标题有影响吗黄酒的电商网页设计网站 西安的做网站的公司批量注册域名 软件公司做网站贵州住房城乡建设厅网站 如何制作公司网站免费wordpress 顶部 空白 制作网站怎样找公司来帮做网页设计尺寸要缩进多少 响水做网站需要多少钱常州网站建设优化 做网站广告推广平台行业网站策划方案 什么样的网站利于百度优化电器网站建设 京东网站开发费用wordpress默认主题12 服装公司网站建设方案wordpress links插件 做网站是用的那个开发软件建设手机银行 别人做的网站怎么打开吗重庆景点分布图 17一起做网站后台wordpress ftp附件 自己做网站怎么挣钱wordpress教育主题 可以做推广的门户网站网站流量用完 8网站免费建站网站建设和优化排名 织梦网站模板如何安装教程互联网服务平台登录