20

複雑な Web アプリケーションに JavaScript フレームワークを使用したいと考えています。私は Backbone.js、knockout.js、JavaScriptMVC を見てきました。クライアント側の JavaScript を多用する Web アプリにはかなり慣れていないので、どれを選択すればよいかわかりません。それぞれが懸念を分離するためのかなり異なるアプローチを持っています。モデル/ビュー/コントローラー vs モデル/ビュー/ビューモデル vs モデル/ビュー/コレクション。

皆さんはどう思いますか?決定要因は何ですか?どれが一番拾いやすいでしょうか?あなたの経験はどのようなものでしたか?

4

2 に答える 2

17

特に複雑な JavaScript UI を構築している場合は、どちらの方法でも間違いはありません。どちらも使用しないことを選択した場合、デバッグが困難なコードが大量に作成される可能性があります。個人的には Backbone が好きですが、どちらも軽量で、テンプレート言語を自由に使用できます (私は JQuery テンプレートを使用しています)。私が Backbone を選んだ理由は、Knockout がそのコンポーネントをあなたの html と混合する方法だったと思います:

<span data-bind="text: myItems().count"></span>

Knockout で上記のような構成を使用することを避けることができるかもしれませんが、それは私を Backbone に向かわせるには十分でした。また、バックボーンには、私のプロジェクトで既に使用されているアンダースコアと jquery の両方に依存関係があるという事実も気に入りました。

于 2011-03-15T03:26:31.073 に答える
8

HostDude のコメントに基づいて構築するには、これはバグではなく機能です:) ノックアウトの概念の一部は、コントローラー/モデルとビューの間にレイヤーがあることです。これにより、HTML をデータ マッピングを含む小さなコンポーネントにモジュール化できます。

はい、JS バインディングが混在していますが、生の HTML には混在していません。むしろ、小さなモジュール化された Jquery テンプレートに追加されています。これらのデータ バインディングを jQuery テンプレート レベルで明示的に追加することにより、基になるアプリケーション データ モデルをまったく乱すことなく、何を何にマッピングするかを完全に制御できます :) Knockout が大好きです!

于 2011-05-16T09:28:33.813 に答える