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

Me *_*agi 9 requirejs backbone.js 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);  
       }
    );
},
Run Code Online (Sandbox Code Playgroud)

Dav*_*der 6

我写了一篇关于这个主题的博客文章.单路由器方法可能会工作一段时间,但您将来担心可扩展性问题是正确的.

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


sch*_*cki 1

从我的角度来看,这完全没问题,并且是最佳实践。它使您的代码保持精简和干净,并且很容易理解应该发生的事情。

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