运行时Vue路由器更改模式

时间:2019-10-04 12:50:25

标签: vue.js vue-router

我使用选项实例化vue-router:

mode: "abstract"

之后,我想在运行时更改路由:

this.$router.mode = 'hash';

然后我浏览:

this.$router.push({name: 'test'});

URL中没有哈希。

那么如何在运行时更改模式?

2 个答案:

答案 0 :(得分:0)

那么,为什么不使用mode: "hash"来启动它呢?

答案 1 :(得分:0)

仅在VueRouter的构造函数中使用模式时,更改模式不会执行任何操作。在VueRouter模式下,执行以下代码(https://github.com/vuejs/vue-router/blob/dev/src/index.js):

switch (mode) {
  case 'history':
    this.history = new HTML5History(this, options.base)
    break
  case 'hash':
    this.history = new HashHistory(this, options.base, this.fallback)
    break
  case 'abstract':
    this.history = new AbstractHistory(this, options.base)
    break
  default:
    if (process.env.NODE_ENV !== 'production') {
      assert(false, `invalid mode: ${mode}`)
    }
}

但是基本上最好重新创建VueRouter