4

私たちは実際に本当に複雑なWebアプリケーションを計画しています。少なくとも私自身の基準では。これまで、サーバー側のMVCフレームワーク(Codeigniter)とクライアント側の機能(jQueryとプラグイン)を組み合わせて使用​​してきました。ビューにインラインJavaScriptコードを記述しただけです。これは期待どおりに機能しましたが、もちろんいくつかの欠点があります。

  • キャッシングなし
  • 複製されたjsコード
  • 保守性の問題
  • ..。

私の主な目標は、クライアント側のコードを効率的で簡単に保守できる方法で整理することです。しかし、既存のノウハウといくつかの既存のインターフェースがあるため、サーバー側のMVCを使い続けたいと思います。さらに、jQueryと「スパゲッティコード」による複雑なDOM操作を減らしたいと思います。

ここで、Backbone.jsとRequire.jsの組み合わせについて考えましたが、それらをサーバー側のMVCと組み合わせる方法についてのチュートリアルや確かな説明は実際には見つかりません。それもお勧めですか?

私の古いアプリでは、次のようなファイル構造を取得しました。

  • アプリケーション(CodeIgniter)
  • 資産
    • js
    • css
    • imgs

アイデアやベストプラクティスはありますか?

ありがとうございました!

4

2 に答える 2

4

mexique1 のアドバイスに加えて、backbone-boilerplate プロジェクトを見る価値があるかもしれません。これは、require と backbone の組み合わせ、プロジェクトのクライアント側の構成、複雑な DOM 操作の削減など、現在検討している多くの問題に対するベスト プラクティス ソリューションを提供する必要があります (テンプレートを参照)。 .

ご想像のとおり、課題は、ボイラープレート アプローチと慣れ親しんだアプローチを組み合わせることです。ただし、このプロジェクトと将来のプロジェクトの強固な基盤を提供するはずなので、ほぼ確実に努力する価値があります.

于 2012-11-13T23:49:43.687 に答える
3

Backboneは良い選択だと思いますが、ここではRequireは必須ではありません。

Requireは、ソースコードを整理し、パフォーマンスを向上させるのに役立ちます。すぐにBackboneから始めることができると思います。これは、最もよく使用するものであり、後でRequireを追加します。

バックボーンに関しては、はい、JSONを返す場合、既存のMVCアプリケーションでモデルを使用するのは簡単です。既存のデータをロードするには、既存のコードまたは独自のメソッドに適応するためにurlに結合されたfetchメソッドを使用する必要があります。

一般的に、どのモデルがどのビューに表示されるかを考えてください。バックボーンは、このように考えるのに役立ちます。HTMLで作成されたビューにJSONデータとして表されたモデルを表示しています。

また、ビューレイヤーの場合、ビューは何にも関連付けられておらず、JavaScriptテンプレートも何もないため、既存のHTMLを再利用するのは非常に簡単です。

簡単な例:

<div id="user">
    <span class="name">John</span>
</div>

var UserView = Backbone.View.extend({
    render: function() {
        this.$el('.name').html(this.model.get('name'));
    }
});
var userView = new UserView({el: $('#user')[0], model: ...});

この例では、#userdivはUserモデルの状態とその名前を反映しています。

BackboneのTodoAppの例確認してください。

于 2012-11-13T19:01:37.223 に答える