我最近一直在使用backbone作为我的客户端框架。在服务器上,我使用Express.js。尽管如此,我还是在阅读有关Meteor的文章,并意识到它是一个相当有趣的“全栈”框架。
Backbone和Meteor的使用是互补的吗?或者使用Meteor可以简单地抛弃Backbone (或其他MV*)吗?
发布于 2012-11-11 00:41:49
没错。Meteor的不同部分,如Meteor.Collection
(也适用于客户端的Mongo数据库API )和Template
(当数据发生变化时自动重绘的Handlebar样式模板)协同工作。因此,每当一个用户进行更改时,允许访问该数据所有其他选项卡都将自动重新绘制。如果您正在使用它们,那么您不需要在客户端使用像backbone这样的单独的库。
Backbone是为早期风格的应用程序构建的,在这种应用程序中,您可以使用不同的API编写单独的客户端和服务器代码。在该模型中,服务器端公开REST API,而backbone的工作是在客户端提供一些结构,以了解如何查询该API并根据返回的数据绘制屏幕。但在拥有实时应用程序之前,您仍然必须手动编写所有数据同步和模型验证代码,并且必须执行两次:一次在客户端,一次在服务器端。
有一个例外:我们中的许多人在Meteor应用程序中使用backbone的路由器。下面的代码来自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});
});
发布于 2013-07-31 22:58:07
有一个现有的名为meteor-router的陨石智能包。也许它可以帮助您迁移现有的主干代码。
https://stackoverflow.com/questions/13323228
复制相似问题