これは初心者の質問ですが、本当に質問したいと思います。node.js
サーバー側のスクリプトを処理し、Webアプリケーションに「構造を与える」ことができることは知っていますが、すべてのサーバーbackbone.js
をすでに知っていて処理しているのに、そもそもなぜそれらを学びたいのでしょうか。jQuery
サイドロジックを使用します。またはDjango
を使用すると、処理速度などが向上しますbackbone.js
か?node.js
2 に答える
これに対する簡単な概要の答えは、Backboneがフロントエンドのjavascriptコード構造を提供するということです。私が構造と言うとき、私が意味するのは、あなたのコードがアプリケーション全体で体系的、標準的、一貫した方法で最も一般的なアクションを実装し、あなたとおそらく他の人があなたの複雑なコードのさまざまな部分を明確に理解できるように、より組織化されるということです。サーバーからRESTfulな方法で返送されるJSONデータとうまく連携するため、Djangoのスキルが有効に活用されます。
プロジェクトにjQuery(のみ)を使用できない理由はありません(Backboneは実際にはDOM操作とAJAX呼び出しにjQueryを使用します)が、コードがどのように忍び寄り、コードの他の部分と絡み合うかを見たことがあれば、データに関連するビュー/プレゼンテーションであるパーツの混合...そのようなコードをデバッグしたり、そのようなコードを拡張したり、ゼロから再構築したりする必要がある場合、すべてのアプリに必要な基本機能。 ..または、一貫性のないことをしていることに気付いた場合は、少しの助けがちょっといいことに気づき始めます。;-)
背骨。
私は間違っているかもしれませんが、MVCフレームワークなどに慣れていない可能性があります。MVCフレームワークが何であるか(そしてさらに重要なことに、それが開発にどのように有益であるか)を知っている場合、Backboneの利点は明らかです。バックボーンはMVCの一種です。
特に大規模なプロジェクトでは、コードの保守の観点から、データをプレゼンテーションから、制御ロジックから分離することが重要になります。つまり、モデル、ビュー、コントロール=MVCです。Backboneは、クライアント側のjavascriptのMVCフレームワークと考えることができます。技術的になると、実際にはMVCのバリエーション(MV *に似ています)ですが、要点は同じです。Javascriptのパフォーマンスが向上し、アプリケーションがますます複雑で大規模になるにつれ、このようなフレームワークは多くの開発者にとってますます必要になっています。同様のことを行う他のオプション(Knockout.jsなど)もありますが、Backboneは群衆の中でかなり甘い選択です。
他のサブ質問のいくつかに答えるには:
バックボーンは、Djangoサーバーのセットアップでうまく機能します。Backboneは、すべてのデータをJSONでやり取りします。たとえば、バックボーンを使用すると、基本的なデータオブジェクトはモデルと呼ばれるものになります。モデルはJSONハッシュを使用して作成されます。たとえば、ユーザーモデルはJSONを使用する場合があります。
{"user":"Rajat", "username":"backboneLearner"}
通常のJSオブジェクトとしてだけでなく、Backboneモデルを使用する利点は、モデルにすでに多くの便利さと優れた機能が組み込まれていることです。例を使用してみましょう。
// Define a Model
var User = Backbone.Model.extend({
defaults: {
"user":undefined,
"username":undefined
},
urlRoot: 'user'
});
// Instantiate a Model
var userModel = new User({
"user":"Rajat",
"username":"backboneLearner"
});
これをサーバーに保存しますか?
userModel.save();
自動的にPOST呼び出しを行います。もはやajaxコードはありません-バックグラウンドですでに実行されています。私があなたに与えたあなたのユーザー名が気に入らないのですか?変更しましょう。
userModel.save({"username":"coolguy"});
同じsave()
方法を使用して、Backboneはユーザー名属性を変更し、POSTの代わりにPUT要求を行いました。これは、ユーザーが既に保存されていることを認識しているためです。(保存されたモデルには、Djangoサーバーから提供されたIDがあります)バックボーンはあなたを歓迎します。
名前が変更されたときにDOMを変更したい場合があります。
<div id="nameDiv">coolguy</div>
バックボーンビューオブジェクトは、この種のものを担当します。実際のところ、彼らはモデルと本当にうまく遊んでいます。ビューでは、このようなことを行うことができます。
// Create a listener for changes on your user model
this.userModel.on('change', this.updateNameDiv, this);
うん。バックボーンは、モデル、コレクション、およびビューが作成およびリッスンできるさまざまな特別なイベントを提供します。これらに限定されません。カスタムのものも作ることができます。
// This is the event handler declared in the view
updateNameDiv: function(model) {
this.$("#nameDiv").html(model.get('username'));
}
// Change userModel
userModel.set("username","superman");
それでおしまい。DOMは次のようになります。
<div id="nameDiv">superman</div>
Backboneは、DOMのトラバースと操作に関して、すべてのjQueriesオファリングを使用します。また、他のすべてのJavaScriptスキルを使用してBackboneを大幅にカスタマイズすることもできます。これは、独自の選択を行うだけでなく、それを拡張するための多くの自由を与える一種のフレームワークです。結論として、jQueryをすでに知っている場合、Backboneは制限を感じることはありません。抽象化のもう1つのレイヤーとして、Backboneは多くの面倒なことをはるかに簡単にします。それは成長しているコミュニティであり、一度それを使用すると、おそらくそれなしでコーディングに戻りたくないでしょう。私が主張する利点は、バックボーンだけのものではありません。確かに他にもいくつかの巧妙なフレームワークがあります。しかし、私はあなたがそれを試してみるべきだと思う理由を理解してくれることを願っています。この長い説明/ストーリーと例がない場合
誰もが始められる初心者のTodoListチュートリアルがあります。新しいプログラミング方法はシフトであり、頭を包み込むのが難しい場合もありますが、後悔していると驚きます。
それらはすべて異なるものです。DjangoとjQueryの操作方法をすでに知っている場合は、速度を上げるためにこれらを使用する必要はありません。しかし、それらは新しいクールなものなので、少なくともそれらをいじってみるとよいでしょう。