web-dev-qa-db-ja.com

テンプレート駆動型と反応型の実際的な違いは何ですか?

Angular 2の新しいForms APIについて読んできましたが、フォームには2つのアプローチがあるようです。1つはテンプレート駆動型、もう1つは反応型またはモデル駆動型です。

この2つの実際的な違い、つまり構文上の違い(明らかに)ではなく実際的な使用方法、およびさまざまなシナリオでどちらがより効果的かを知りたいと思います。また、どちらを選択してもパフォーマンスが向上しますか。そしてもしそうなら、なぜ?

114
gdyrrahitis

テンプレート駆動フォーム機能

  • 使いやすい
  • 単純なシナリオに適しており、複雑なシナリオには失敗します。
  • AngularJSに似ています
  • 双方向データバインディング([(NgModel)]構文を使用)
  • 最小部品コード
  • フォームとそのデータの自動追跡(Angularによって処理されます)
  • 単体テストも課題

反応型フォームの機能

  • より柔軟ですが、多くの練習が必要です
  • 複雑なシナリオにも対応
  • データバインディングは行われません(ほとんどの開発者に好まれる不変データモデル)
  • より多くのコンポーネントコードと少ないHTMLマークアップ
  • のような反応的変換が可能になります。
    • デバウンス時間に基づいてイベントを処理する
    • 変更されるまでコンポーネントが異なる場合のイベント処理
    • 動的に要素を追加する
  • より簡単なユニットテスト
131
Aravind

codestrategy、およびser experienceについての議論だと思います。

要約すると、template-drivenである作業しやすいであるアプローチを、reactiveに変更します。 us 詳細な制御。HTML(設計/ CSSチームはここで作業できます)とコンポーネントのビジネスルール(angular/jsスペシャリストメンバー)とのデカップリングを活用することで、テスト可能なフォームを改善しますユーザーエクスペリエンスの向上リアクティブ変換、相関検証、および複雑なシナリオの処理などの機能により、実行時検証ルールおよび動的フィールド複製として機能します。

この記事は、それに関する良いリファレンスです: Angular 2 Forms-Template Driven and Model Driven Approaches

20
Richard Lee

これはDeborahK(Deborah Kurata)によって説明されたテンプレート駆動型と反応型の比較の要約です。 enter image description here

13
Sajeetharan

反応フォーム

  • 再利用可能
  • より堅牢
  • テスト可能
  • よりスケーラブル

テンプレート駆動型フォーム

  • 簡単に追加
  • スケーラビリティが低い
  • 基本フォーム要件

要約あなたのアプリにとってフォームが非常に重要な場合、あるいはリアクティブパターンがあなたのアプリで使用されている場合、あなたはリアクティブフォームを使うべきですサインインなどのフォームでは、template-driven formsを使用する必要があります。

角公式リンクがあります

0
fgul