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