Backbone SPA:加载新路线的最佳做法?

时间:2014-06-03 07:20:52

标签: javascript backbone.js single-page-application backbone-routing

在骨干网页应用中加载新路线的“最佳做法”是什么?

现在,我的应用程序混合了这两种方法:

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>标记单击事件加载路由),或者我是否应该只使用方法二当绝对必要时。一种方法比另一种方法快得多吗?任何陷阱?

非常感谢。

1 个答案:

答案 0 :(得分:0)

我更喜欢方法二,因为,例如,如果我想在网址中更改某些内容,我可以在视图中执行此操作。你可以像这样使用方法二:

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

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

通过这种方式,您可以将ID添加到网址并跟踪浏览器历史记录中的网页