私は、既存のWebアプリケーションプロジェクトにBackboneとBackbone.Marionetteを統合する過程にあります。私たちは現在、既存の機能をすべてプロジェクトに残したいと考えていますが、新機能では、Backboneの構造化とMarionetteプリンシパルを利用します。ビジネスの第一歩の1つは、HTMLテンプレートレンダリングライブラリと、これらのテンプレート用のデータバインディングソリューションを決定することです。以前は、私たちはすべてのテンプレートニーズとデータバインディングにJsRenderとJsViewsを使用していましたが、私たちは新しい機能の新しい道を模索しています。だから、基本的に私は様々な解決策を研究していますし、何を選ぶべきかについてのアドバイスや考えが必要です。ここで私はこれまで見てきたものである:バックボーン:モデルとテンプレートとテンプレートとモデルの結合
長所:非常に「きれい」のテンプレートを保つことができます懸念の分離のバックボーンの考えに従うように思われます。
短所:バインディングを定義するために、ビューにもう少しコードを書く必要があるようです。また、条件付きレンダリングを行う能力が不足していると思われるので、常に完全なテンプレートをレンダリングし、特定の要素の表示を切り替えるだけで済みます。
長所:それはあまりにも乱雑にすることなく、テンプレート内のオプションを結合少しより多くのデータを処理します。
短所:条件付きレンダリングが不足しているようです。
長所:属性を通じてニーズをデータバインディングのすべての種類を処理します。
短所:コンバーターを使用してテンプレートを「ダーティー」するのは簡単です。バックボーンモデルからノックアウトビューモデルを作成するための別のステップを追加する必要があります。
長所:ノックアウトの能力には異なる構文を持つ同様。条件付きレンダリングを処理します。
短所:これまで、テンプレート内にビジネスロジックを追加することでテンプレートをダーティにしましたが、これは私たちが修正できる開発の問題である可能性があります。 JsViews監視機能をバックボーンモデルイベントに結びつける機能を作成する必要があります。 StickItやKnockbackのような他のライブラリはこれを自動的に処理します。
は、我々はまた、StickItとリベットの間に、どこかにあるBackbone.ModelBinderに見えました。
誰でも自分の意思決定を共有できますし、なぜ彼らは別のプラグイン/ライブラリを選択したのですか?私は他の提案にもオープンしています。ありがとう。
アンダースコア(私がそれを考慮していなかったことはあなたが言及したように含まれている面白い)をチェックアウトしました。私は "スパゲッティ"テンプレートで同じ問題があるかもしれないと感じました。主な関心事は、テンプレートを扱う多数の開発者がおり、あまりにも多くのロジックとテンプレート構文をHTMLに絡み合わせることでした。だから私たちにその習慣を放棄させるために私たちはバックボーンと一緒に行くことにしました。テンプレートの外にバインディングを作成するのには時間がかかるようですが、HTMLの「清潔さ」のメリットが期待されます。あなたのご意見ありがとうございます。 –