最近、クライアント側のフレームワークとしてバックボーンを使用しています。サーバーではExpress.jsを使用しています。それでも、私はMeteorについて読んでいて、それがかなり興味深い「フルスタック」フレームワークであることに気づきました。
BackboneとMeteorの使用法は補完的ですか、それともMeteorを使用すると、Backbone(または他のMV *)を単純に捨てることができますか?
最近、クライアント側のフレームワークとしてバックボーンを使用しています。サーバーではExpress.jsを使用しています。それでも、私はMeteorについて読んでいて、それがかなり興味深い「フルスタック」フレームワークであることに気づきました。
BackboneとMeteorの使用法は補完的ですか、それともMeteorを使用すると、Backbone(または他のMV *)を単純に捨てることができますか?
それは正しい。Meteorのさまざまな部分Meteor.Collection
(クライアントでも機能するMongoデータベースAPI)とTemplate
(データが変更されたときに自動的に再描画されるハンドルバースタイルのテンプレート)は連携して機能します。したがって、1人のユーザーが変更を加えると、そのデータへのアクセスを許可されている他のすべてのタブが自動的に再描画されます。それらを使用している場合は、クライアントのバックボーンのような個別のライブラリは必要ありません。
バックボーンは、異なるAPIで記述された個別のクライアントコードとサーバーコードがある、以前のスタイルのアプリケーション用に構築されています。そのモデルでは、サーバー側がREST APIを公開し、バックボーンの仕事は、そのAPIをクエリし、戻ってきたデータに基づいて画面を描画する方法について、クライアントに何らかの構造を提供することです。ただし、リアルタイムアプリを使用する前に、すべてのデータ同期とモデル検証コードを手動で作成する必要があります。また、クライアントで1回、サーバーで1回の2回実行する必要があります。
例外が1つあります。私たちの多くは、Meteorアプリケーションでバックボーンのルーターを使用しています。以下のコードは、Todoリストの例からのものです。
////////// Tracking selected list in URL //////////
var TodosRouter = Backbone.Router.extend({
routes: {
":list_id": "main"
},
main: function (list_id) {
Session.set("list_id", list_id);
Session.set("tag_filter", null);
},
setList: function (list_id) {
this.navigate(list_id, true);
}
});
Router = new TodosRouter;
Meteor.startup(function () {
Backbone.history.start({pushState: true});
});
meteor-routerと呼ばれる既存の隕石スマートパッケージがあります。おそらく、既存のバックボーンコードを移行するのに役立ちます。