1. ホーム
  2. angular

[解決済み] テンプレート駆動型とリアクティブ型の実用的な違いとは?

2022-04-16 06:54:58

質問

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

構文の違いではなく(もちろん)、実用的な使い方と、異なるシナリオでどちらのアプローチがより恩恵を受けるかを知りたいのです。 また、どちらかを選択することでパフォーマンスが向上するのでしょうか?もしそうなら、その理由も教えてください。

どのように解決するのですか?

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

  • 簡単な操作
  • シンプルなシナリオに適し、複雑なシナリオでは失敗する
  • AngularJSに似ている
  • 双方向のデータバインディング(using [(NgModel)] 構文)
  • 最小限のコンポーネントコード
  • フォームとそのデータの自動追跡(Angularで処理)
  • ユニットテストはもう一つの課題

リアクティブフォームの特徴

  • 柔軟性が高いが、練習が必要
  • あらゆる複雑なシナリオに対応
  • データバインディングを行わない(多くの開発者が好むイミュータブルデータモデル)
  • コンポーネントコードが多くなり、HTMLマークアップが少なくなる
  • などのリアクティブな変換が可能になります。
    • デバウンス時間によるイベント処理
    • コンポーネントが変更されるまで区別される場合のイベント処理
    • 動的に要素を追加する
  • ユニットテストの容易化