Режим изменения Vue-роутера во время выполнения - PullRequest
0 голосов
/ 04 октября 2019

Я создаю экземпляр vue-router с параметром:

mode: "abstract"

После этого я хочу изменить маршрут во время выполнения:

this.$router.mode = 'hash';

Затем перехожу:

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

И в URL нет хеша.

Так как я могу изменить режим во время выполнения?

Ответы [ 2 ]

0 голосов
/ 04 октября 2019

Изменение режима ничего не делает, в то время как режим используется только в конструкторе 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

0 голосов
/ 04 октября 2019

Итак, почему бы вам не инициировать его с помощью mode: "hash"?

...