18

我最近一直在使用主干作为我的客户端框架。在我使用 Express.js 的服务器上。尽管如此,我还是在阅读 Meteor 并意识到它是一个相当有趣的“全栈”框架。

Backbone 和 Meteor 的使用是互补的,还是使用 Meteor 可以简单地抛弃 Backbone(或任何其他 MV*)?

4

2 回答 2

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});
});
于 2012-11-10T16:41:49.090 回答
2

有一个名为meteor-router的现有陨石智能包。也许它可以帮助您迁移现有的主干代码。

于 2013-07-31T14:58:06.980 回答