meteor.js和backbone.js是互补的吗?

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,并且主干的工作是在客户端上提供一些结构,以便如何查询该A​​PI并根据返回的数据绘制屏幕.但是,在拥有实时应用程序之前,您仍需要手动编写所有数据同步和模型验证代码,并且必须执行两次:一次在客户端上,一次在服务器上.

有一个例外:我们中的许多人确实在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)

  • 但是这意味着骨干是无用的.使用[page.js](https://github.com/visionmedia/page.js),因为我只需要计数!;) (4认同)
  • 你是对的:我看到更多的Meteor项目切换到page.js. (2认同)