在骨干网页应用中加载新路线的“最佳做法”是什么?
现在,我的应用程序混合了这两种方法:
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>
标记单击事件加载路由),或者我是否应该只使用方法二当绝对必要时。一种方法比另一种方法快得多吗?任何陷阱?
非常感谢。
答案 0 :(得分:0)
我更喜欢方法二,因为,例如,如果我想在网址中更改某些内容,我可以在视图中执行此操作。你可以像这样使用方法二:
Backbone.View.extend({
//init code
events: {
'click a':'fooNav'
},
fooNav: function(e) {
e.preventDefault();
Backbone.history.navigate('#/foo');
}
});
通过这种方式,您可以将ID添加到网址并跟踪浏览器历史记录中的网页