私はBackboneとBackbone.Marionetteを既存のWebアプリケーションプロジェクトに統合する過程にあります。今のところ、プロジェクトの既存の機能はすべてそのままにしておく予定ですが、新しい機能はすべて、バックボーン構造化とマリオネットプリンシパルを利用します。ビジネスの最初の順序の1つは、HTMLテンプレートレンダリングライブラリと、これらのテンプレートのデータバインディングソリューションを決定することです。以前は、すべてのテンプレートのニーズとデータバインディングにJsRenderとJsViewsを使用していましたが、新しい機能の新しい方法を模索していきます。ですから、基本的に私はさまざまな解決策を研究してきましたが、今は何を選ぶべきかについていくつかのアドバイスや考えが必要です。これが私がこれまで見てきたことです:
長所:テンプレートを非常に「クリーン」に保つのに役立つ懸念事項を分離するというBackboneの考え方に従っているようです。
短所:バインディングを定義するには、ビューにもう少しコードを記述する必要があるようです。また、条件付きレンダリングを実行する機能が不足しているようです。そのため、常に完全なテンプレートをレンダリングし、特定の要素の表示を切り替える必要があります。
長所:テンプレートを乱雑にすることなく、テンプレート内でもう少し多くのデータバインディングオプションを処理します。
短所:また、条件付きレンダリングが不足しているようです。
長所:属性を介してあらゆる種類のデータバインディングのニーズを処理します。
短所:コンバーターを使用してテンプレートを「汚す」ことを簡単に開始できます。バックボーンモデルからノックアウトビューモデルを作成するには、別の手順を追加する必要があります。
長所:Knockoutの機能に似ていますが、構文が異なります。条件付きレンダリングを処理します。
短所:以前は、テンプレート内にビジネスロジックを追加しすぎてテンプレートを汚していましたが、これは開発の問題であり、修正できる可能性があります。JsViewsの可観測性機能をBackboneモデルイベントに関連付ける機能を作成する必要があります。StickItやKnockbackなどの他のライブラリは、これを自動的に処理します。
また、StickItとRivetsの中間にあるBackbone.ModelBinderも調べました。
誰かが行った決定と、なぜあるプラグイン/ライブラリを別のプラグイン/ライブラリよりも選んだのかを共有できますか?他の提案も受け付けています。ありがとう。