Backbone.js - 大型站点的动态路由

时间:2012-08-28 06:37:53

标签: backbone.js requirejs backbone-routing

我计划对具有30个以上模块的应用程序使用backbone + require。我没有为每个模块创建单独的路线,而是计划创建这样的东西。

不确定这是最佳做法。请指导。

routes: {
  ":module"                   : "routeLevelOne",
  ":module/:id"               : "routeLevelTwo",
},

routeLevelOne: function(module){
    require(['views/' + module + 'View',],
        function(){
          require('views/' + module + 'View').render();  
       }
    );
},

routeLevelTwo: function(module, id){
    require(['views/' + module + 'View',],
        function(){
          require('views/' + module + 'View').renderWithId(id);  
       }
    );
},

2 个答案:

答案 0 :(得分:6)

我写了一篇关于这个话题的blog post。单路由器方法可能会工作一段时间,但您将来担心可扩展性问题是正确的。

正如上面提到的@schacki,查看我的Backbone.Subroute插件,使其更具可扩展性,并将子路径的负担转移给处理这些模块的开发人员。

答案 1 :(得分:1)

从我的观点来看,这是完全正常的,是最好的做法。它使您的代码保持精简和清洁,并且很容易理解应该发生的事情。

对我来说,唯一的选择就是subroutes。但由于您的“调度”逻辑似乎在所有模块中都是相同的,因此可能不需要。