大まかに言うと、MVVM パターンのさまざまなコンポーネントは次のとおりです。
Model
: これは、サーバーによって送信され、サーバーに送り返されたデータを表します。これには、UI の表示に関連する状態は含まれませんViewModel
: これは 1 つまたは複数のモデルから構成されます。これには、UI 操作用の状態 (ボタンが有効か無効か) が含まれます。UI 操作用のすべてのロジックがここに格納されます。このレイヤーは、どの UI フレームワークにも依存しません (jQuery 呼び出しはありません)。View
: これは、UI フレームワーク/基礎となる UI コントロールと密結合しています。1 つのビューは、1 つのビュー モデルのみを観察します。ビュー モデルは、1 つ以上のビューで観察できます。ビューは、ビュー モデルとの 2 つのバインドを行う責任があります。- A
presenter/coordinator
: 従来の実装の一部ではありませんが、それがない場合、ビュー モデルはあまりにも多くの責任を負うことになります。この男は、ajax 呼び出し (get/post) の作成、グローバル イベント アグリゲーターでのイベントのリッスンなどを調整するのに役立ちます。
Standalone Backbone には、ビュー モデルとデータ バインディングの概念がありません。そのシナリオでは、サーバーから返されたデータをBackbone.Model
オブジェクトとしてモデル化できます。バインディングは手動で行われ、ビューモデルの同期には POJO を使用できます。
データ バインディングに Stickit を使用する場合、ビュー モデルは のインスタンスである必要があるようですBackbone.Model
。主な理由は、バインディングが a のコンテキスト内で機能し、Backbone.View
aがオブジェクトがビューのプロパティとして存在することをBackbone.View
期待しているためです。Backbone.Model
また、Backbone.Model は変更イベントを発生させます。POJOの観測は難しいと思います。繰り返しますが、これは Stickit のドキュメントを読んだ私の理解です。間違っている場合は修正してください。
Aには、などBackbone.Model
のビュー モデルの観点からは意味をなさない他のメソッドがあります。別の mvvm ライブラリ. をビューモデルに変換できます。本格的な を渡す代わりに、get/set メソッドを持ち、プロパティが変更されたときに変更イベントを発生させる任意の POJO を受け入れることもできます。save
fetch
Knockback
Backbone.Model
Knockout.js
Backbone.Model
Stickit には、get/set メソッドを持ち、変更イベントを発生させる POJO を渡すことができる同様のコントラクトがありますか? おすすめの使い方は?