【问题标题】:Are meteor.js and backbone.js complementary?meteor.js 和backbone.js 是互补的吗?
【发布时间】:2012-10-30 16:01:11
【问题描述】:

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

Backbone 和 Meteor 的用法是互补的,还是和 Meteor 可以合二为一 干脆放弃 Backbone(或任何其他 MV*)?

【问题讨论】:

    标签: javascript backbone.js meteor


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      没错。 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});
      });
      

      【讨论】:

      • 感谢您的精彩回答!我注意到了……因为无论如何我都在使用套接字重写代码! ..流星生产准备好了吗?你们打算什么时候发布稳定版本?
      • 但这意味着主干是无用的.. lemme 使用 page.js 代替,因为我只需要 rounting! ;)
      • 你说得对:我看到更多 Meteor 项目切换到 page.js。
      • 一些喜欢冒险的开发者已经将它用于生产。我会将 1.0 的更多详细信息发布到 meteor-talk
      猜你喜欢
      • 2020-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-31
      相关资源
      最近更新 更多