私は何ヶ月も AngularJS のメリットを研究して、私が作成している製品のコア フレームワークとして利用しています。AJS には、学ぶ価値のある多くの側面があります。はい、少し学習曲線がありますが、特にクライアント側の機能をより詳細に制御したい場合は、それだけの価値があります。
JQuery は実行時に DOM を操作しますが、AJS は JS レンダリング ライフサイクル内に位置付けられます。これにより、HTML 要素と属性を作成することで、DOM に新しいトリックを教えることができます。これは非常に強力です。あなたができることは、目的や必要に応じて新しい要素の動作を導入することです。AJS では、これらのカスタム HTML 属性/要素はディレクティブと呼ばれます。独自のディレクティブを作成する機能により、現在の HTML にない機能を構築し、現在および将来のすべての最新ブラウザーで実行される機能を押し出すことができます。新しい行動を誘導するための多くのアプローチの中で、AJS は、その実装方法を選択したため、最も安全な方法のようです。
AJS では、JQuery よりもパフォーマンスが大幅に向上しています。
双方向のデータ バインディングのシンプルさと、クライアント側の MVC パターンでの関心の分離が気に入っています。これにより、上で指摘したように優れたテスト容易性が提供されます。スコープ オブジェクトは、ビュー (HTML)、モデル (データ)、およびカスタム コントローラーの間の接着剤です。スコープは、親属性へのアクセスを提供し、兄弟レベルで分離できます。これは、一部の再利用可能なテンプレートにとって重要です。
テンプレートは、0 個以上のカスタム ディレクティブを含めることができるアプリケーション全体で作成および再利用できます。
私は PRISM や MEF などのフレームワークを使用してきましたが、AJS にはこれらの .NET フレームワークに存在するものとほとんど同じ機能があり、フットプリントは 29K であることがわかりました。彼らが遅延読み込みに取り組んでいるという噂があります。これが提供されれば、非常に興味深い LOB タイプの機能が提供されるでしょう。
AJS 用に構築されている UI フレームワークは多数ありますが、少し努力すれば、必要に応じて任意のサード パーティ コントロール ライブラリをラップできます。秘訣は、これらのサード パーティ コントロールが変更を誘発した場合に、適用メソッドを使用して AJS に適切に通知されるようにすることです。
VS 2012 内で AJS を MS TypeScript と組み合わせると、VS 内のプロジェクトに慣れている人に適した非常に印象的なプロジェクトを管理および構築する機能が提供されます。
AJS を検討する理由は他にもたくさんありますが、KnockOut などのフレームワークを検討している場合は、認識されている学習曲線に関係なく、代わりに AJS を強くお勧めします。Knockout はライブラリ、AJS はフレームワークです。