当前位置: 首页 > 网络应用技术

Flutter的认知和思考状态管理

时间:2023-03-06 23:43:05 网络应用技术

  倡议将讨论相关主题。

  目前,只有五个人参与了讨论。如果您有任何独特的见解,或者您想参加,则可以咨询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

  在自动刷新机制中,需要处理回收依赖性

  在这里,我写了一个可以完成实例自动回收的回收控制

  使用

  通常,在各级国家管理部门都提出了一些想法和个人意见。本文的后半部分还制定了一些州管理实施计划。

  本文中的内容应该对想要设计状态管理的漂亮男人有所帮助;如果您有相关意见,请在评论区域进行讨论。

  相关地址