2012-08-28 10 views
9

Mam zamiar użyć szkieletu + wymagać dla aplikacji, która ma więcej niż 30 modułów. Zamiast tworzyć osobną trasę dla każdego modułu, planuję stworzyć coś takiego.Backbone.js - Dynamiczne wyznaczanie tras dla dużej witryny

Nie jesteś pewien, że to najlepsza praktyka. Proszę przewodnika.

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

Odpowiedz

1

Z mojego punktu widzenia jest to całkowicie w porządku i jest najlepszą praktyką. Dzięki niemu kod jest chudy i czysty i bardzo łatwo zrozumieć, co ma się stać.

Jedyna opcja alternatywna dla mnie to coś takiego jak subroutes. Ale ponieważ logika "wysyłki" wydaje się być taka sama we wszystkich modułach, prawdopodobnie nie jest to wymagane.

6

Napisałem blog post o tym samym temacie. Podejście pojedynczego routera może działać przez jakiś czas, ale masz rację, martwiąc się o problemy z skalowalnością w przyszłości.

Jako @schacki wspomniałem powyżej, sprawdź moją wtyczkę Backbone.Subroute, aby uczynić ją bardziej skalowalną i przenieś burdon subroutów do programistów pracujących nad tymi modułami.

Powiązane problemy