我最近一直在使用骨干作为我的客户端框架。在服务器上我使用Express.js。 不过,我正在阅读Meteor,并意识到这是一个相当有趣的“全栈”框架。
Backbone和Meteor的使用是互补的,还是Meteor可以使用 简单地抛弃Backbone(或任何其他MV *)?
答案 0 :(得分:27)
没错。 Meteor的不同部分如Meteor.Collection
(也可在客户端上运行的Mongo数据库API)和Template
(在数据更改时自动重绘的Handlebars样式模板)协同工作。因此,每当一个用户进行更改时,允许访问该数据的所有其他选项卡将自动重绘。如果您正在使用它们,那么您不需要在客户端上使用像骨干这样的单独库。
Backbone是为早期应用程序而构建的,您可以使用不同的API编写单独的客户端和服务器代码。在该模型中,服务器端公开REST API,并且主干的工作是在客户端上提供一些结构,以便如何查询该API并根据返回的数据绘制屏幕。但是,在拥有实时应用程序之前,您仍需要手动编写所有数据同步和模型验证代码,并且必须执行两次:一次在客户端上,一次在服务器上。
有一个例外:我们很多人都在Meteor应用程序中使用骨干路由器。以下代码来自Todo List example。
////////// 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});
});
答案 1 :(得分:2)
现有一个名为meteor-router的陨石智能包。也许它可以帮助您迁移现有的骨干代码。