0

想像してみてください。2 つのコンポーネントParentとがありChildます。後で必要になるChildユーザー入力を収集するために使用されます。Parent

現在、これを実現するために次の 2 つの方法を考えています。

オプション1:

<child-component [data]="childData" (done)="onDone()"></child-component>

親は基本的に に渡しchildData = {}ますChild。で利用できるように何かをChild書き込み、完了したら発行します。dataParentchildDatadone

オプション 2:

<child-component (done)="onDone(data)"></child-component>

Child終了するdoneと、対応するデータが出力されます。

オプション 2 は angular2 imho の概念により適しているようですが、オプション 1 はデータをすぐに利用できるようにします。オプション 1 の悪い習慣を検討しますか?

また、私が考えていない別のオプションはありますか?

4

1 に答える 1

3

真にスタンドアロンのコンポーネントであるためには、親は完了に反応するべきではありません。完了は、更新がトリガーされたために親が監視して反応する dataModel に対して何かを行う必要があります。

私にとって、これは親子関係を実装するためのよりクリーンな方法です。子が子を変更する理由は、子を使用するすべての親が変更されたものを理解する必要があるためですが、子の内部で完了が発生し、親が親と子の両方に共通の別のソースからそれを解釈できる場合、親と子の両方が大まかにカップリング。

この場合、選択の問題です。あなたのオプションと私のオプションの両方がトリックを行う必要があります。それは、構築しているアプリケーションのタイプによって異なります。軽量のアプリケーションを構築している場合は、どのモデルでもうまくいく可能性がありますが、アプリケーションが大きくなると、これらの親子の依存関係が戻ってきて、私たちを悩ませます。

于 2016-01-20T01:30:51.477 に答える