一方向のデータバインディングではなく、私のフォームで双方向のdatabind(ng-model)を使用すると、パフォーマンスが悪いかどうかをたくさん調べています。 私は、それぞれの双方向データバインド用の角度1では、新しい時計が作成され、角度1の巨大なアプリケーションでは、これが原因でパフォーマンスの問題が発生する可能性があることを知っています。今私は角度2の場合、データバインドの一方向しか使用しないと、これが何らかの違いを生むかどうかを知る必要があります。 双方向データバインドは、必要でないときは避ける必要がありますか?angular 2必要がない場合、双方向データバインドを避ける必要がありますか?
答えて
https://yakovfain.com/2015/12/29/two-way-data-binding-in-angular-2/
2ウェイデータバインディングのインスタンスがありますベストプラクティスが、特にあなたはリアルタイムを必要とする2ウェイUIの更新やその他の珍しい出来事です。ダイジェストでの余分な作業以外の問題は、不要なときにツリーのトラバーサルを引き起こし、最終的にはアプリケーションをわずかに遅くしますが、それらを十分に追加すれば、パフォーマンスへの影響がわかります。それらを使用することを怖がらないでください。その影響は実行時には小さいですが、ベストプラクティスのために一方向のデータバインディングを使用し、変更された検出戦略をプッシュして設定し、手動でオブザーバを手動で処理します。それは簡単なことですが、これを達成できれば、不要なトラバーサルを大幅に減らすことができます。トラバースは超軽量ですが、何かが多すぎると悪いことです。私はアプリケーションに自律性を与えるのが好きではありません。
Angular2には実際に双方向データバインディングがありません。
Angular2が有する
データバインディング親から子へ変化検出は、それがchildProp
更新parentProp
の変化を検出し、子コンポーネントにngOnChanges()
コール
[childProp]="parentProp"
(実装時) 。子から親に
を結合
とイベント、子から親への道は、イベントバインディングです。 eventFromChild.emit(someValue)
は、子コンポーネントで呼び出され
(childPropChange)="parentProp = $event"
呼び出し "someActionOnParent()"。これら2の
組み合わせが
[(childProp)]="parentProp"
上に示したデータとイベントのバインディングのためだけ糖衣構文であるこれは、変化検出のみを変更するparentProp
をチェックする必要がありますし、気にしないことを意味しもう一方の方向。子コンポーネントから親コンポーネントへの更新は、子コンポーネントによってアクティブに呼び出されなければならず、変更検出を伴わない。
この単方向データフローにより、Angular2の変更検出は非常に効率的です。変更検出をさらに最適化するには、コンポーネント内でChangeDetectionStrategy.OnPush
を使用します。これにより、Angular2が実際に変更検出を行う必要があるツリーをプルーニングすることができます。
- 1. 双方向関係を回避する必要がありますか?
- 2. ベストプラクティス:双方向関係を回避する必要がありますか?
- 3. go:どちらのチャネルエンドポイントが双方向の場合にチャネルを閉じる必要がありますか?
- 4. 助けが必要な場合:DataGridCheckBoxColumn双方向は一方向のみで動作します
- 5. 双方向アソシエーションを休止する必要がありますか?
- 6. AJAXアップローダの大容量PHP iniメモリ制限が必要な場合、回避する必要があります。
- 7. WPFデータバインドが必要です。手動で起きる必要があります
- 8. シングルトンパターンを避ける必要がありますか?
- 9. LinkButtonが2回クリックする必要がある場合があります
- 10. Firefoxのメッセージを避ける必要があります
- 11. アドバンスドExcel Sumif(VBAが必要な場合があります)
- 12. netbackup port openinings - 双方向通信が必要ですか?
- 13. Angularコンポーネントが必要な場合に相対パスが見つかりません
- 14. Telerikレポートが必要でない場合、データソースの実行を避ける
- 15. ファイルが必要な場合、Perl 6はMAINを実行する必要がありますか?
- 16. 必要なモジュールが見つからない場合があります。
- 17. Angular 2を使用する場合、TypescriptでEntity Frameworkクラスを複製する必要がありますか?
- 18. ビューがない場合は、onLayoutをオーバーライドする必要があります
- 19. VBOを変更する必要がある場合、VAOを再構築する必要はありますか?
- 20. カスタム挿入動作が必要な場合、RowSorterのカスタム実装を行う必要がありますか?
- 21. 2つのフィールドのどちらかが必要な場合に角2のカスタムバリデーターが必要です。
- 22. @Entityがある場合、なぜ "annotatedClasses"が必要ですか?
- 23. Thymeleafが必要な場合はセットが必要
- 24. Django複雑な照会(組合が必要な場合があります)
- 25. スキャナの入力は2回必要です。一度だけ必要な場合
- 26. エラー:トークンを定義する必要があります。 Angular 2 RC5でテストする場合
- 27. この場合、2つのbackingbeansを用意する必要があります
- 28. Javaで - 2つが同じ場合に配列の要素を合計する必要があります
- 29. テストのために静的メソッドを避ける必要がありますか?
- 30. DelphiのSharemem - 必要がない場合
私は間違ったことを提案していませんが、これはコンポーネントの真実ではありませんか?このインスタンスでは、ngmodelを使用して、入力を渡すかイベントを送出することがわかっているコンポーネントはありませんので、onchangesは現在のコンポーネントでのみ起動します。 –
あなたのコメントを完全に理解していますか。 'ngModel'はディレクティブであり、ディレクティブと同じです。コンポーネントとディレクティブの唯一の違いは、コンポーネントにはビューがあることです。 –
真。私は内蔵ディレクティブが@ディレクティブではなく魔法のように感じられると思います。面白い。レッスン –