Angular 2 Data Flow 和 Flux 之间的关键区别是什么?

What's the crucial difference between Angular 2 Data Flow and Flux?

你好,我现在正在学习Angular2和React + Redux,想请教一下这两种选择在数据流上的区别

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

提前致谢!

If those two are not so much different in terms of how data flows, why would anyone use Flux or Redux over default choice of Angular 2 framework?

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

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

If those two are quite different, is there a name I can call for Angular 2's data flow for further references to compare those two?

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

通过将 Redux 与 angular 2 一起使用,您可以将应用程序状态集中在一个完全独立于您的组件的地方:商店。

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

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

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

同时回答你的问题:

Angular 2 uses uni-directional data flow by default. Redux is a Flux implementation, which (also) uses uni-directional data flow. What is the crucial difference among those? (is it maybe, the composition of parts?)

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

传输