关于Flutter应用程序中的Redux架构

最近,在Flutter上有一篇关于干净架构的文章。我想从一个稍微不同的角度介绍该主题,并开发使用Redux管理全局状态的主题。

关于我自己的一点:我从事商业产品的开发已有大约10年的时间,其中我在Flutter工作了将近2年,我设法尝试了所有著名的州经理。有些会唤起中立的记忆-BLoC,Provider,带有自己的流的全局类块,以及一些消极的记忆-MobX。

结果,对于我自己,我选择了Redux来获取全局状态和用于实现应用程序结构的库:

  • 建筑价值

  • Built_collection

  • rxdart(可选)

  • flutter_simple_dependency_injection(或dioc)

  • 内置_ redux

这是我用于实施任何级别项目的最小库集。

现在逐步

应用程序的一般结构

应用程序的一般结构
数字: 1.应用程序的一般结构
数字:1.应用程序的一般结构

  根目录下的文件夹都是标准文件夹,是自动创建的,但是还有其他文件夹:

  • build.yaml - built_value,

  • analysis_options.yaml - . .

  • scripts - /// : , , , Flutter, . -. : prepare_app - Flutter, prepare_app_hover - hover. , ( ) dartfix -

  • application_bundle - . , JSON - - "" , , ..

-
数字: 2.预洗牌示例
. 2. -

数字: 3.一组脚本中的一个示例
. 3.

Flutter-

lib :

  • domain - : , , , , , ,

  • tools -

  • di - ,

  • features - UI , ,

  • services - , , ,

  • app - . MaterialApp CupertinoApp

  • app_routes.dart -

Domain

-
数字: 4.类模型的实现示例
. 4. -

  • actions

    built_redux Redux-

-
数字: 5.动作模型类的实现示例
. 5. -

  • middlewares

, built_redux

-
数字: 6.中间件类的实现示例
. 6. -

  • epics

    . built_redux. rxdart

-
数字: 7.史诗类的实现示例
. 7. -

  • reducers

,

-
数字: 8. reducer类的实现示例
. 8. -

  • states

    Redux. - - AppState, : , .. built_redux

-
数字: 9.类状态的实现示例
. 9. -

DI

. flutter_simple_dependency_injection

数字: 10.依赖倒置的实现示例
. 10.

Features

- , . - blocs, components, widgets, tools. - widgets . (BLoC) - , . - - . StatefulWidget’

  • initState

  • - StreamBuilder’

  • dispose

components - -,

BLoC

- -. , di-. ,   -

BLoC
数字: 11.基本的抽象BLoC类的示例
. 11. BLoC

- BaseBloc .

BLoC-
数字: 12. BLoC类的示例
. 12. BLoC-

  :

  1. ,

  2. . / , , . , - (, , , ..), ( , , , nextSubstate)

-

数字: 13.调用动作的方法的示例
. 13.

StreamBuilder:

数字: 14.渲染状态变化
. 14.

, , , .

:

  1. . , . 300 2

  2. Redux , ,

:

  1. , , built_value “ ”

  2. Redux

  3. /

  4. . , 13 Flutter ,

  5. , UI - , ( Redux , )

我想补充一点,没有简单的项目。有时,宠物项目会发展为商业产品。然后,在设计不正确的体系结构之后,可能无法正常运行。我也有一个关于Flutter的项目,为了感兴趣,我尝试编写MobX架构。该项目已经发展壮大。从某种程度上说,这使工作变得不舒服,我不得不重写Redux上的所有内容。  

本文的目的是吸引初学者或经验丰富的开发人员注意Redux架构,该架构在具有成千上万日常用户的超大型商业产品上表现良好。她幸存下来,经受住了同事的到来/离开,各种功能的介绍/删除。




All Articles