Flutter 颤振设计模式:有推荐的顶级设计吗?

Flutter 颤振设计模式:有推荐的顶级设计吗?,flutter,Flutter,我来自Android开发背景,对flatter还不熟悉,我已经了解了基本的层次结构widget概念和它的库。就像Android有MVP、MVVM和MVI等设计模式一样,颤振编程有什么流行的设计模式吗?颤振应用程序与状态和流一起工作,我知道这里有两种主要模式,redux和BLoC Redux: Redux是一个应用程序状态管理框架。换句话说,它的主要目标是管理一个国家。 Redux的架构遵循以下原则: 单向数据流 一家店 商店的行为类似于Redux的编排器。商店: 只存储一个状态 公开一个名

我来自Android开发背景,对flatter还不熟悉,我已经了解了基本的层次结构widget概念和它的库。就像Android有MVP、MVVM和MVI等设计模式一样,颤振编程有什么流行的设计模式吗?

颤振应用程序与状态和流一起工作,我知道这里有两种主要模式,redux和BLoC

Redux: Redux是一个应用程序状态管理框架。换句话说,它的主要目标是管理一个国家。 Redux的架构遵循以下原则:

  • 单向数据流

  • 一家店

  • 商店的行为类似于Redux的编排器。商店:

    • 只存储一个状态
    • 公开一个名为dispatch的入口点,它只接受操作 争论中
    • 公开一个getter以获取当前状态
    • 允许(取消)注册以(通过StreamSubscription)收到以下通知: 应用于状态的任何更改
    • 将操作和存储分派给第一个中间件
    • 将操作和当前状态分派给减速器(其中 可能是几个减速机的外表)
    行动

    操作是存储访问点接受的唯一输入类型。中间件和Reducer使用动作和当前状态来处理某些功能,这可能导致修改状态

    行动只描述发生了什么

    中间件

    中间件是一种功能,通常旨在基于动作异步(但不一定)运行。中间件只使用状态(或操作作为触发器),但不更改状态

    减速器

    减速器通常是一个同步函数,它根据组合动作状态进行一些处理。处理的结果可能导致新的状态。 减速机是唯一允许更改状态的减速机

    您可以在中找到有关redux的更多信息

    集团 BLoC模式不需要任何外部库或包,因为它仅仅依赖于流的使用。但是,对于更友好的功能(例如主题),它通常与

    集团模式依赖于:

    StreamController

    StreamController公开一个StreamSink以在流中注入数据,并公开一个流以侦听流中流动的数据

    StreamBuilder

    StreamBuilder是侦听流并在流发出新数据时重建的小部件

    流订阅

    StreamSubscription允许侦听流发出的数据并作出反应

    BlocProvider

    BlocProvider是一个方便的小部件,通常用于保存一个BLoC并使其可供后代小部件使用

    这里有一篇关于