主干SPA:加载新路由的最佳实践

Backbone SPA: Best practice for loading new routes?

本文关键字:最佳 路由 SPA 加载 新路由 主干      更新时间:2023-09-26

在主干单页应用中加载新路由的"最佳实践"方式是什么?

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

在我的html
<a href="#/foo">Some Route</a>

或者我可以在视图中定义一个事件:

在我看来
Backbone.View.extend({
  //init code
  events: {
    'click a':'fooNav'
  },
  fooNav: function(e) {
    e.preventDefault();
    window.location.replace('#/foo');
  }

});

都可以正常工作,路由器会清理僵尸并加载相关的视图。

我不确定我是否应该始终使用方法二(这使我更灵活地在功能中做其他事情,并使非<a>标签单击事件加载路由),或者我是否应该只在绝对必要时使用方法二。一种方法比另一种方法快得多吗?任何问题吗?

多谢。

我更喜欢方法二,因为,例如,如果我想改变url中的一些东西,我可以在视图中做。你可以像这样使用方法二:

Backbone.View.extend({
//init code
events: {
'click a':'fooNav'
},
fooNav: function(e) {
e.preventDefault();
Backbone.history.navigate('#/foo');
}
});

通过这种方式,您可以在url中添加id,并跟踪浏览器历史记录中的页面