骨干路由器一般与单独的路由文件?(Backbone general router vs. separ

2019-09-18 18:38发布

我发现大多数教程采用一个大的路由器。 例如: https://github.com/thomasdavis/backboneboilerplate/blob/gh-pages/js/router.js

那岂不是更好地路由(控制器)中分离到单独的文件?

如果是的话我怎么能与requirejs结合呢?

Answer 1:

我认为这是优先考虑的问题。 如果你正在做有极大数路由的ginormous的应用程序,然后将你的路由器起来是明智的。 对于小型应用程序具有只是一个大的路由器只是罚款。

如果您决定有多个路由器,请确保您没有冲突的路线,所以不会有任何意外行为或错误。

因此,与requireJS:我认为最好的办法是在它自己的文件中像这样来定义每个路由器

define([blaa, blaa], function(Blaa, Blaa) {

  var SubRouter1 = Backbone.Router.extend({

    // work your routing magic here, remember to make no conflicting routes

  });

  return SubRouter1;
});

当你把所有你想要的路由器设置,您可以在捆绑起来app.js

define([...,'subrouter1', 'subrouter2', ... , 'subrouterN', ...],
function(..., SubRouter1, SubRouter2, ... , SubRouterN, ...) {

  // work your app magic here

  initialize: function() { // or wherever you start your application
    subrouter1 = new SubRouter1();
    subrouter2 = new SubRouter2();
    ...
    ...
    subrouterN = new SubRouterN();
    Backbone.history.start(); // remember to start the history 
  },

  // maybe work some more magic?
});

我从来没有这个工作我自己,但我不明白为什么如果保持路线从冲突的它不会工作。 希望这个清除的东西给你。



Answer 2:

检查Backbone.js的“胖路由器”的设计难题了:你可以找到@jakee回答有一些更多的选择



文章来源: Backbone general router vs. separate routing files?