私はかなりの入門チュートリアルを読み(絶対初心者、完全に学ぶ、2つのコードスクールバックボーンコースの大部分を含む)、バックボーンが提供する可能性を完全に見ることができます。しかし、理解力の電球はまだ完全にはオンになっていない...単純なtodoアプリである例の大部分は、より複雑なプロジェクトで作業しているときよりもはるかに些細なことのように見えると思います。
私の実験はある程度まではうまくいきましたが、次の一連のスキャッターショットの質問について回答やフィードバックを得ると、多くのフラストレーションを軽減し、学習曲線を希望の方向に進めることができると思います。詳細な性質の例に関連するスニペットを含めようとしました。
1)ルーターは素晴らしいですが、/は重い物を持ち上げる場所ではありませんか?
次のルーターは、ユーザーを最初のページの読み込みから特定のルート(検索)に移動するように機能します。このルートでは、TodoMVCの例のapp.jsと同様に、最後に読み込まれたjsでSearchBoxViewがインスタンス化されます。ただし、SummaryResultsViewに示されているようにルーターでビューを設定しようとすると、「コンストラクターではありません」というエラーが生成されます。
var Workspace = Backbone.Router.extend({
routes: {
'': 'default',
'search': 'searchBox',
'summary': 'summary',
'detail': 'detail',
},
default: function() {
console.log("Router: Default");
track.Router.navigate("#search", {
trigger: true,
replace: true
});
},
searchBox: function () {
console.log("Router: Search");
},
summary: function () {
console.log("Router: Summary");
new track.SummaryResultsView({ el: $("#summary #results")});
},
https://github.com/thomasdavis/backbonetutorials/blob/gh-pages/examples/modular-backbone/js/router.jsを見つけたところ、ルーターの初期化が期待どおりに動作しているようです。。次にそのアプローチを試みます。
2)レンダリングで多くの状態ロジックを構築するメインページビューが必要ですか?
上記のルーターで私が目指していたのは、各ルートに、コレクションの結果に基づいてプレゼンテーションを表示/非表示または変更する多数のビューがあることです。状態の変化に応じてレンダリングするビューを設定するのは良い場所のように思えました。TodoMVCの例では、app.jsビューのレンダリング関数が同等のロジックの多くを実行します。
3)require.jsなしの外部ファイルのアンダースコアテンプレート
最終的にrequire.jsを含めることができると確信していますが、学習曲線の一部を単純化するために、それなしで開始したいと考えていました。また、b / cテンプレートは、別のCMSからフィールドタイトルを取得しますが、AMDでどれだけうまく機能するかは(まだ)わかりません。
4)カラーボックスやデータテーブルなどのプラグインの依存関係を減らすのに役立ちますか?
私がBackboneで取り組んでいる概念実証項目の1つは、これらのjQueryプラグインで動作するように明示的に記述されたかなりの量のプレゼンテーションコードを備えたsmediumサイズのアプリです。悪い言い方ではありませんが、バックボーン構造で同様の機能を記述することは、それが何をしているのかを理解するために、もう少し保守しやすいか、少なくとも読みやすいようです。念のために言っておきますが、旅行中にバックボーンテーブルソーター(投稿用のリンクがありません)を見つけましたが、プラグインとの緊密に結合されたコードになるかどうかは(まだ)わかりません。
ありがとう!