【问题标题】:What's the crucial difference between Angular 2 Data Flow and Flux?Angular 2 Data Flow 和 Flux 之间的关键区别是什么?
【发布时间】:2017-08-03 14:41:33
【问题描述】:

您好,我现在正在研究 Angular 2 和 React + Redux,我对这两种选择的数据流差异的差异有疑问。

  1. Angular 2 默认使用单向数据流。 Redux 是一个 Flux 实现,它(也)使用单向数据流。它们之间的关键区别是什么? (可能是零件的组成?)
  2. 如果这两者在数据流动方式上没有太大区别,为什么有人会使用 Flux 或 Redux 而不是 Angular 2 框架的默认选择?
  3. 如果这两者完全不同,我可以为 Angular 2 的数据流调用一个名称,以便进一步参考以比较这两者吗?

提前非常感谢!

【问题讨论】:

    标签: angular reactjs redux flux dataflow


    【解决方案1】:

    如果这两者在数据流动方式上没有太大不同,为什么 有人会使用 Flux 或 Redux 而不是 Angular 2 的默认选择吗 框架?

    Angular 主要提供 UI 层(组件),而框架未预定义状态管理。由于 Angular 有服务,您可以将业务逻辑保留在服务(有状态服务)中,将 UI 状态保留在组件(有状态组件)中,但这意味着状态没有单一的位置,因为它分布在服务/组件之间。

    在 Angular 应用程序中使用redux 的主要原因是为了将 UI 层与数据层分开。在 redux 中,状态被分离到一个单独的层(想想单个树状对象),它通过注入到组件构造函数中的特殊服务与 UI 层(组件)同步(检查this setup)。

    如果这两个完全不同,有没有我可以呼唤的名字 Angular 2 的数据流以供进一步参考以比较这两者?

    我还没有遇到过,可能是因为正如我上面提到的,作为一个框架,Angular 专注于呈现,而不是状态。

    【讨论】:

    • 感谢您的回答!一个额外的问题。据我所知,Flux(作为 FB 的通量实现)并不像 Redux 那样强制对所有状态使用一个存储。那么 Flux 是否与 Angular 服务中的业务逻辑大体相似?
    • @sangyongjung,我对 Flux 没有太多经验,但我认为是的,在某些方面它们是相似的。
    【解决方案2】:

    通过使用带有 Angular 2 的 Redux,您可以将应用程序状态集中在一个与您的组件完全分离的地方:商店。

    然后您的组件可以是无状态的,允许您像这样禁用对它们的内部更改检测。

    @Component({
      changeDetection: ChangeDetectionStrategy.OnPush
    })
    class myComponent {
      @Input() inputFromTheStore: Observable<State>;
    }
    

    确实,上面的示例是一个无状态组件,您可以在其上插入状态流。

    也回答你的问题:

    Angular 2 默认使用单向数据流。 Redux 是一个 Flux 实现,它(也)使用单向数据流。什么是 它们之间的关键区别是什么? (是不是可能,组成 零件?)

    关键的区别在于,使用 Redux,状态将始终通过 @Input() 从上方进入。与传统的 angular2 statefull 组件不同,其中状态可以通过 @Input()@Output() 传输。

    【讨论】:

    • 非常感谢!
    猜你喜欢
    • 2014-02-13
    • 1970-01-01
    • 2018-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-25
    • 1970-01-01
    相关资源
    最近更新 更多