2012-08-28 9 views
9

Estoy planeando usar backbone + require para una aplicación que tiene más de 30 módulos. En lugar de crear una ruta separada para cada módulo, estoy planeando crear algo como esto.Backbone.js - Enrutamiento dinámico para un sitio grande

No estoy seguro si esta es una buena práctica. Por favor guía.

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); 
     } 
    ); 
}, 

Respuesta

1

Desde mi punto de vista, esto es totalmente correcto y es una buena práctica. Mantiene su código delgado y limpio, y es muy fácil entender lo que se supone que sucederá.

La única opción alternativa para mí sería algo así como subroutes. Pero dado que su lógica de "despacho" parece ser la misma en todos los módulos, probablemente no sea necesaria.

6

Escribí un blog post sobre este mismo tema. El enfoque de un solo enrutador puede funcionar por un tiempo, pero tiene razón en preocuparse por los problemas de escalabilidad en el futuro.

Como @schacki mencionado anteriormente, revisa mi plugin Backbone.Subroute para hacer esto más escalable, y transfiere el burdon de subroutes a los desarrolladores que trabajan en esos módulos.

Cuestiones relacionadas