您好我正在研究Angular 2和React + Redux,我对这两个选项的数据流差异存在疑问。
提前多多感谢!
答案 0 :(得分:4)
如果这两者在数据流动方面没有太大差异,为什么呢? 有人会使用Flux或Redux而不是默认选择Angular 2 框架?
Angular主要提供UI层(组件),而框架未预定义状态管理。由于angular具有服务,因此您可以将业务逻辑保留在服务(有状态服务)和组件(有状态组件)中的UI状态中,但这意味着状态没有单一位置,因为它分布在服务/组件中。
在角度应用程序中使用redux
的主要原因是将UI层与数据层分开。在redux中,状态被分成一个单独的层(想象单个树状对象),它通过注入组件构造函数的特殊服务(检查this setup)与UI层(组件)同步。
如果这两者完全不同,是否有我可以要求的名称 Angular 2的数据流用于进一步参考以比较这两个?
我没有碰到过一个,可能是因为正如我上面提到的那样,角度作为一个框架专注于演示,而不是状态。
答案 1 :(得分:2)
通过将Redux与angular 2结合使用,您可以将应用程序状态集中在一个完全独立于组件的位置:商店。
您的组件可以是无状态的,允许您像这样禁用内部更改检测。
@Component({
changeDetection: ChangeDetectionStrategy.OnPush
})
class myComponent {
@Input() inputFromTheStore: Observable<State>;
}
实际上,上面的例子是一个无状态的组件,你插入一个状态流。
也回答你的问题:
Angular 2默认使用单向数据流。 Redux是一个Flux 实现,它(也)使用单向数据流。什么是 这些之间的关键区别? (也许是,组成 份?)
关键的区别在于,对于Redux,状态将始终通过@Input()
从上方进入。与传统的angular2状态完整组件不同,其中状态可以通过@Input()
和@Output()
传递。