Backbone SPA: лучший способ загрузки новых маршрутов?

Каков наилучший способ загрузки нового маршрута в магистральное одностраничное приложение?

Прямо сейчас в моем приложении есть сочетание этих двух методов:

1) В моем html

<a href="#/foo">Some Route</a>

Или я могу определить событие на мой взгляд:

2) на мой взгляд

Backbone.View.extend({
  //init code
  events: {
    'click a':'fooNav'
  },

  fooNav: function(e) {
    e.preventDefault();
    window.location.replace('#/foo');
  }


});

Оба работают нормально, маршрутизатор очищает зомби и загружает соответствующий вид.

Я не уверен, следует ли мне всегда использовать второй метод (что дает мне больше гибкости для выполнения других действий в функции и создания маршрутов загрузки событий кликов без тега <a>), или мне следует использовать второй метод только тогда, когда это абсолютно необходимо . Является ли один метод намного быстрее, чем другой? Есть ошибки?

Большое спасибо.


person cs_stackX    schedule 03.06.2014    source источник


Ответы (1)


Я предпочитаю второй метод, потому что, например, если я хочу что-то изменить в URL-адресе, я могу сделать это в представлении. Вы можете использовать метод два следующим образом:

Backbone.View.extend({
//init code
events: {
'click a':'fooNav'
},

fooNav: function(e) {
e.preventDefault();
Backbone.history.navigate('#/foo');
}
});

Таким образом, вы можете добавить идентификаторы к URL-адресу и отслеживать страницы в истории браузера.

person Catalin Lungu    schedule 03.06.2014