2017-03-13 24 views
3

こんにちは私はAngular 2とReact + Reduxを今研究しています。これらの2つの選択肢のデータフローの違いの違いについて質問があります。Angular 2のデータフローとFluxの重要な違いは何ですか?

  1. 角度2は、デフォルトでは一方向のデータフローを使用します。 ReduxはFlux実装であり、(また)単方向データフローを使用します。それらの間の重大な違いは何ですか? (部品の構成ですか?)
  2. これらの2つがデータの流れの点でそれほど違いがなければ、なぜFluxまたはReduxをAngular 2フレームワークのデフォルトの選択よりも使用するのでしょうか?
  3. これらの2つが全く異なる場合は、Angular 2のデータフローでこれらの2つのデータを比較するための参照が必要な名前がありますか?

ありがとうございます!

答えて

3

これら二つはそんなに違う方法データフローの面でない場合は、なぜ は、誰もが角度2 フレームワークのデフォルトの選択の上にフラックスやReduxのを使うのでしょうか?

角度は主にUIレイヤ(コンポーネント)を提供し、状態管理はフレームワークによってあらかじめ定義されていません。 angleにはサービスがあるため、ビジネスロジックをサービス(ステートフルサービス)やUIステート(コンポーネントのステートフルコンポーネント)に保つことができますが、サービス/コンポーネント間で分散されるため、ステートには単一の場所がないことを意味します。

角度アプリケーションでreduxを使用する主な理由は、UIレイヤーとデータレイヤーを分離するためです。 reduxでは、状態はコンポーネントコンストラクタ(チェックthis setup)に注入された特別なサービスを介してUIレイヤ(コンポーネント)と同期する別のレイヤ(単一のツリー状オブジェクトと考える)に分かれています。

これらの2つが全く異なる場合は、 という2つのデータフローを参照してください。

フレームワークとして上記の角度を述べたように、私はプレゼンテーションではなく、状態に焦点を当てているため、1つに出くわしたことはありません。

+0

ありがとうございます! もう1つ質問があります。 私が知る限り、Flux(FBのフラックス実装)は、Reduxのようにすべての州で1つのストアを使用するよう強制しません。 Fluxは一般的にAngularのサービスでビジネスロジックを持つように類似していますか? – sangyongjung

+0

@Songyongjung、私はFluxについて多くの経験はありませんが、私はそう思っています。何らかの形で彼らは似ています。 –

2

角度2のReduxを使用すると、アプリケーションの状態をコンポーネントから完全に離れた1つの場所、つまりストアに集約します。

コンポーネントはステートレスにすることができ、このような内部変更検出を無効にすることができます。

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

上記の例は、ステートレスなコンポーネントであり、ストリームのプラグインを行います。また、あなたの質問に答えるために

角度2は、デフォルトで単方向データフローを使用しています。 ReduxはFlux の実装であり、(また)単方向のデータフローを使用します。 とはどういう違いがありますか? (おそらく、 の部分の構成ですか?)

重要な違いは、Reduxでは状態が常に@Input()を経由して上から来ることです。状態が@Input()@Output()を通過できる従来の角度2ステートフルコンポーネントとは異なります。

+0

verありがとうございます! – sangyongjung

関連する問題