Backbone.history.navigate和this.router.navigate之间有什么区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Backbone.history.navigate和this.router.navigate之间有什么区别相关的知识,希望对你有一定的参考价值。

Backbone.history.navigatethis.router.navigate有什么区别?

为什么有时前者会在以后工作呢?

答案

如果你看看Backbone source,你会发现Router.prototype.navigate只是Backbone.history.navigate的代理,你可以在任何地方调用它而不需要路由器实例。

// Simple proxy to `Backbone.history` to save a fragment into the history.
navigate: function(fragment, options) {
  Backbone.history.navigate(fragment, options);
  return this;
},

路由在global, namespaced in Backbone, History instance中处理。

这是为了让开发人员创建自己的History类,然后覆盖Backbone.history属性以全局更改路由行为。

History类没有太多记录,但它是well commented in the source

此外,在navigate类中拥有Router的代理可以很容易地直接在路由器中挂钩我们自己的行为。


至于为什么有时它不起作用可能是因为你试图在this.router.navigate不存在的类中做this.router

以上是关于Backbone.history.navigate和this.router.navigate之间有什么区别的主要内容,如果未能解决你的问题,请参考以下文章