Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 主干SPA:装载新路线的最佳实践?_Javascript_Backbone.js_Single Page Application_Backbone Routing - Fatal编程技术网

Javascript 主干SPA:装载新路线的最佳实践?

Javascript 主干SPA:装载新路线的最佳实践?,javascript,backbone.js,single-page-application,backbone-routing,Javascript,Backbone.js,Single Page Application,Backbone Routing,在主干单页应用程序中加载新路由的“最佳实践”方法是什么 现在,我的应用程序混合了以下两种方法: 1在我的html中 <a href="#/foo">Some Route</a> 两者都可以正常工作,路由器清理僵尸并加载相关视图 我不确定是否应该始终使用方法2,它使我能够更灵活地在函数中执行其他操作并使非标记单击事件加载路由,或者我是否应该仅在绝对必要时使用方法2。一种方法比另一种快得多吗?有什么问题吗 非常感谢 我更喜欢方法二,因为例如,如果我想在url中更改某个内容,

在主干单页应用程序中加载新路由的“最佳实践”方法是什么

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

1在我的html中

<a href="#/foo">Some Route</a>
两者都可以正常工作,路由器清理僵尸并加载相关视图

我不确定是否应该始终使用方法2,它使我能够更灵活地在函数中执行其他操作并使非标记单击事件加载路由,或者我是否应该仅在绝对必要时使用方法2。一种方法比另一种快得多吗?有什么问题吗


非常感谢

我更喜欢方法二,因为例如,如果我想在url中更改某个内容,我可以在视图中进行更改。您可以像这样使用方法二:

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

fooNav: function(e) {
e.preventDefault();
Backbone.history.navigate('#/foo');
}
});
通过这种方式,您可以向url添加id,并跟踪浏览器历史记录中的页面

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

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