2010-12-16 9 views
11

私はexisting large web appの小さな角をレンダリングするためにBackbone.jsを採用しています。これがうまくいくならば、私はBackbone.jsがアプリケーションの全体を網羅し、有機的に成長したアプリケーションに必要な構造を貸していることが分かります。それは序文です。今すぐ問題:Backbone.jsビューにはどのような粒度が適していますか?

私は、ユーザーが読書計画を選択することができます選択ボックスがあります。選択が変更されると、ビューは説明テキスト、カレンダーインタフェース、および今日の読み取り値を完全なものとしてマークするための小さなウィジェットを更新します。このウィジェットには、今日のエントリーの各読み取り(1つ以上)のチェックボックスと、翌日の読み取りを続行するためのボタンがあります。 (the existing appの右側に、このインタフェースの現在のバックボーン以外のバージョン(完了スキームを除く)が表示されます。

各ビューの適切な粒度は?ビット」:

  • 全て含まれているコントロールを包含するタブ自体、
  • 選択ボックス
  • 選択に応答する選択ボックスに応答する説明文、
  • カレンダー、。ボックス
  • 読書ウィジェットは、選択ボックスに応答し、以下を含みます。
    • オプションで、現在のプランを有効にする「開始」ボタン。
    • アクティブにすると、今日のエントリ内の個々の読み取り値に対応する1つ以上のチェックボックスが表示されます。
    • アクティブにすると、今日の入力を完了し、次のものを表示する「次へ」ボタン。

これらの箇条書きのそれぞれが独自のビューを取得するべきでしょうか?ちょうど主要な部分(タブ、選択ボックス、ウィジェット)? 1つ目は、かなりの数のビューになります。最初は、複雑なView実装につながる可能性があります。何がベストですか?

注:私はこれが乱暴に、主観的な質問と解釈される可能性がありますが、私はまだBACKBONE.JSとJavaScript/DOM MVCパターンの周り私の頭をラップだ、と私は狭いがあることを望んでいる実感経験豊富なBackbone.js開業医からの「これは意図したもの/うまくいくもの」です。ありがとう!

答えて

9

あなたの質問に対する決定的な回答はありません。あなたはexemplesのsproutcoreの細かさを見ることができます。

また、http://vimeo.com/17186379を見ることもできます。ここでは、Yehuda Katzがさまざまなページの更新の難しさを示しています。

異なるモデルの変更/イベントでどの部分をリフレッシュして再レンダリングを最小限に抑えるべきかを確認する方法の1つは、

申し訳ありません良い答え、あなたが指摘したように、)一般的に

+3

ありがとう、そのビデオは非常に有用です。私はBackboneのドキュメントでもこれを見つけました。「1つのDOM要素の内容を担当する論理的なUIの塊であるため、ビューと呼んでいます。小さくて軽量なビューが最高だと思っています。 –

13

、あなたの意見の粒度は、UIの特定の部分の複雑さとの間のバランスを見つけることに依存し、過フラグメンテーションビューの少しになりますピース。私はおそらくボタンのような小さなもの(CSSクラスはあなたが本当に必要とするもの)のためのビューを使用しないでしょう。

あなたの特別なケースでは、カレンダーウィジェットのためのビューを持っているので、アプリ内の他の場所で簡単に再利用できます。また、Devotionsタブ全体のビューもあります。残りは、イベントバインドを使用して実行できます。

モデルの更新と再レンダリングに関して、バックボーンを使用したアイデアの全体は、その懸案事項をビューから分離することです。モデルは、その属性が変更されたときに「変更」イベントを発生し、その時点でページ上に存在するビューがあれば、その特定のモデルのデータを表示し、変更を通知され、自身を更新することができる。

+0

入力いただきありがとうございます - それは私が何をしたのかについてです。 –

関連する問題