9

KnockoutAngularSammyjQuery、少しのそよ風、そして少しの燃えさしにはもう慣れています。チュートリアルとDurandalすべての開始は、最初に jQuery を追加し、おそらくノックアウトを追加すると言っているようです。

これらすべてとはまったく異なるものを処理しますか? ノックアウトで使用される可能性が高いように、どのようなニーズに対応していますか?

クライアント側のルーティングと UI コンポーネントの寄せ集めですか?

概念的には、それ自体で何をしますか?

4

4 に答える 4

13

Durandal は、クライアント側の SPA Web アプリケーションに MV* フレームワークを提供するという点で Angular に似ています。

Angular は、すべてではないにしてもほとんどがカスタム コードですが、Durandal は主に Knockout と RequireJS (Sammy の依存関係は 2.0 リリースで取り除かれました) の既存のライブラリを使用し、ビュー/ビュー モデルの構成とハッシュタグ (スパ) ナビゲーション。

Knockout に関しては、Durandal は Knockout に大きく依存してビューとビュー モデルを構成します。ビューが DOM に挿入されると、ビューとビュー モデルは自動的にデータ バインドされます。これの利点は、Knockout を使用して V/VM データ バインディングを提供できることです。Durandal に、使用する v/vm を特定し、サーバーから取得して、現在の画面に構成する作業を任せることができます。

言い換えると、Durandal は、ビュー/ビュー モデルをハッシュ タグ ベースのルートにマップする方法を提供し、SPA ナビゲーションを提供します。shell、またはレイアウト、ビューをメイン ビューとして指定することにより、Durandal が基本的に「スクリーン プレゼンター」パターンを実装するために使用するプレースホルダーを追加できます。Durandal は URL の変更をリッスンし、現在の URL ルートに一致するビューを自動的にアクティブ化し、データ バインド (Knockout を使用)、および表示することができます。

WPF に精通している場合、Durandal は Prism のような機能を主な提供物として提供するものであり、Web 用の単一ページ アプリケーションの構築をサポートするように設計されたその他の優れた機能を備えていると考えるかもしれません。

于 2013-08-24T01:42:20.883 に答える
10

Durandal にはいくつかの利点がありますが、既存のライブラリにも基づいています。依存関係があります

  1. RequireJS
  2. ノックアウト
  3. jQuery

これらは「たぶん」ではありません。それらは強い依存関係です。デュランダルは彼らなしでは機能しません。

核となるのは、デュランダルがノックアウトへの非常に強力なコンポーズバインディングを追加することです。このバインディングは、viewmodel が渡されたときにビュー (HTML ファイル) を自動的に見つけ、サーバーから取得し、viewmodel にバインドして、DOM に挿入します。templateノックアウトバインディングを使用して同様の動作を実現できますが、テンプレートの管理が煩雑になる可能性があります。コンポジションはプロセスにライフサイクル イベントも追加します。これにより、viewmodel が正しく設定および破棄されるようになります。また、オプションの DOM キャッシュも提供します。

Durandal は、いくつかのフレームワーク構造も提供します。これは、ルーターがハッシュまたはプッシュ状態を介して SPA ナビゲーションを提供するために使用する単純なプラグイン API を提供します。これにより、オーバーライド可能な規則によるビューモデルとビューの編成、および Require AMD モジュールの使用が促進されます。また、アプリケーション全体のイベントを作成および使用できるようにする単純なイベント モジュールも提供します。

これ以外にも多くの小さな機能があります。Durandal のホームページには参考文献があります。

于 2013-08-24T01:55:04.950 に答える
9

Durandal は「フル機能」の SPA フレームワークですが、Knockout は単なるデータバインディングです。範囲は Angular に似ています。

于 2013-08-24T01:45:08.603 に答える