倡议将讨论相关主题。
目前,只有五个人参与了讨论。如果您有任何独特的见解,或者您想参加,则可以咨询Zhang Fengje并欢迎与我们交流。
本文的一些内容,我想很久以前写信,但是我从来没有有太多动力,所以我一直在推动。
这次,我被Grandbags敦促几次,终于完成了这篇文章。在文章中,我对状态管理有一些想法和观点,希望在庞大的人群中引起零星的共鸣。
交易是许多想法或框架的基石
采用最经典的MVC,该模块分为三层。
这个经典级别可以应对许多情况
时代一直在发展,技术正在不断变化。就像普罗米修斯偷火一样,为世界带来了许多变化
视图节点操作的想法,固定的应用程序在今天的前端不准确
现在,许多“状态”显示了前端以控制接口。您需要使用更多精致的语言来解释它
国家管理的重点是表面上:国家和管理
状态是页面的灵魂,是业务逻辑和通用逻辑的锚点。只要状态分开并管理它,该页面就可以分离了
一般来说,从国家管理的概念来看,可以将多个级别解耦
极简主义模式?
这是一个非常简洁的划分。许多受欢迎的扑波状态管理框架也被分开,例如:提供商,GetX
标准模式?
这已经是MVC级别的级别,并且此级别也很普遍,例如:CUBIT(提供商和GetX可以轻松划分此结构)
严格的模式?
对于基准模式,它已被划分到位,但是某些类型的级别没有分配:用户的行为和程序交互
说明:如果您想划分这个水平,价格必须非常大,这将进一步提高框架的复杂性。
常见状态管理框架:集团,redux,fish_redux
痴迷 - 脉冲障碍模式?
通用状态管理框架:redux,fish_redux
从图中,这种结构已经有些复杂。为了刷新此级别,它已经支付了巨大的费用
我们应该害怕并抵制变化和思想吗?
我经常认为,出色的意识形态证词的变化,时间不会下降,而是越来越出色
例如:设计模式
成熟的状态管理框架必须将逻辑与接口层分配。这是国家管理框架的最简单意图。
一些观点
实际上,此时支付的成本是针对框架开发人员的。开发人员需要选择合适的技术解决方案来进行合理的脱钩
要实施国家管理框架,我可能会说:
目前,您可能会在屏幕前思考:这种毛茸茸的真的可以吹牛,让它发笑吗?
关于上述词,我真的没有吹牛。在看到一些状态管理源代码后,我发现状态管理的想法实际上非常简单。当然,开源框架的代码并不是那么简单。扩展,这基本上会给读者,尤其是提供商带来极大的困扰。您看到的头皮麻木...
在提取了一些典型的国家管理思想之后,我重新出现了一个简约的代码,以重现其操作机制。我发现使用了所有观察模型的想法。
我从来没有任何想法:他们都是鲁ck时代的伟大先驱!
如何从接口确定逻辑+状态层?
我总结了几种经典的州管理机制,因为每个实施源代码都有一些长度,并且将其放置在文章的后半部分。如果您有兴趣,可以看到它;每个实施方法的代码完成,可以独立运行
什么是动作层?就像其名称一样,行为层,用户和接口上的交互事件可以分为此层
为什么要划分动作层?
基于对商务会议的日益考虑,一些框架将动作层分开并统一管理所有互动事件
成本框架的成本
如果您想统一管理所有互动事件,那么实现并不难
查看想法的实施
实施框架的成本不高,主要是因为事件的接受和分配
实际上,我们通常不在乎框架的成本,无论该框架的实现多么复杂,它都是无关紧要的。用法应该简洁明了。
如果内部设计非常微妙,它使用晦涩,无疑会增加用户的负担
侧面费用
动作层的划分将增加用户的成本,这是不可避免的
图中红色框的模块是额外的使用成本
外部性能集团不使用动作
状态层:在此演示中,此层不重要,不要再写了
集团使用动作
状态层:在此演示中,此层不重要,不要再写了
fish_redux使用性能
动作层的划分和fish_redux中事件的分布显然比集团大得多
Fish_redux使用枚举和一个课程来完成许多事件的定义;集团需要继承班级,一个班级和一个事件
老实说,我使用两个框架。Bloc的写作确实更加麻烦,尤其是在涉及讲道时,您需要定义班级中的许多变量。
总结
与上述形式相比,可以发现差异很大
添加了动作层,以便不可避免地会飙升
目前,许多人的心可能会吐口水:很麻烦,
通过分析对动作层分离设计的基本分析,我们将发现不可避免的现实!
当业务逐渐复杂时,行动层的划分是必要的,我们必须总结事件的入口;经常调整业务时,我们需要快速定位相应的业务!
有没有办法简化?
动作层的划分将在一定程度上增加用户的负担。有什么方法可以简化它?同时,可以实现管理事件入口的效果吗?
我已经对视图层疯狂宝贝的小部件做出了很多想法,我尝试了分裂的形式
分裂的效果很好地结合了视图层和动作。特定操作:扑面而为改善洋娃娃的地狱问题(模仿Pirajaya PC页面)
总结
框架的协议可以标准化许多具有不同行为习惯的开发人员
我稍后提出的视图层的分裂只能依靠开发人员的意识
在这里,我给出了另一种方式。选择只能由您自己决定
我一直被视图层分开。我觉得我感觉到后来的复杂模块的维护。这很友好~~
还原层的声音可能是我的菜太多了,我无法感受到这种差异层的奇妙性。
我还用fish_redux(一年)写了很多页。我还通过动作层传递了相关数据以减少并相应地刷新它,从而导致问题!
经过很多次之后,我多次烦躁之后,我直接将Readucer层写入刷新方法!
即使在一个复杂的模块中,我也没有感觉到他带给我的好处,我只能将他无限地削弱为刷新方法
这是我阅读一些状态管理的源代码
以前的源代码分析文章已编写,整理并摘要
实现最不难的
这是一个非常普遍的实现
实现需要实现管理逻辑层实例的中间件:依靠注射的实现
您还可以使用senstaritedwidget保存和传递逻辑层实例(bloc完成了);但是它可以自己管理,这可以极大地扩展使用情况。这里
定义显示器和基类
让我们看一下核心EasyBuilder控制器:这是完成的!
使用
意识到一定的困难一定
可以查看更详细的分析:颤音提供商的另一面
让我们看一下senasenitedwidget,它带有一些功能
数据传输
当地刷新
senasitedWidget具有对子节点元素的强大操作功能
有了上面的这两个关键知识,您可以轻松地实现强大的状态管理框架。让我们看一下。
为了取得巨大的成就,以上三个类是基于
用法基本上与提供商相同。
意识到一些灵感的
实施自动化刷新
为了实现相同的目标,有必要管理其逻辑类的中间件。对于完整的示例,写下此依赖的管理类
在自动刷新的机制中,需要打包基本类型
您需要编写一个非常重要的公交类,该类还将存储响应变量的听力对象
刷新控制EBX
在自动刷新机制中,需要处理回收依赖性
在这里,我写了一个可以完成实例自动回收的回收控制
使用
通常,在各级国家管理部门都提出了一些想法和个人意见。本文的后半部分还制定了一些州管理实施计划。
本文中的内容应该对想要设计状态管理的漂亮男人有所帮助;如果您有相关意见,请在评论区域进行讨论。
相关地址