完全使用Vue-router更改网址

时间:2019-03-11 17:13:04

标签: vuejs2 vue-router

我的问题与Vue中的Vue-router模块有关。根据文档,我们只能以编程方式更改当前网址https://router.vuejs.org/guide/essentials/navigation.html

的最后一部分

因此,$router.push仅会更改此链接的“ 3”部分: http://localhost:8080/#/1/2/3

在我的特定情况下,我想重新加载数据并动态更改WHOLE URL,如下所示: http://localhost:8080/#/1/2/3-> http://localhost:8080/#/5/6/7

正在设置一个新的window.location.href,但是我想知道是否有更优雅的解决方案。 $router.push是否有替代方法,但也会改变URL的其他部分?

2 个答案:

答案 0 :(得分:0)

您还可以推送非相对URL:

相对:

$router.push(3)
$router.push({path: '3'}}

绝对:

$router.push({path: '/5/6/7'})

答案 1 :(得分:0)

当处于哈希模式时,Vue-router会管理井号之后的所有内容:

                      | HASH |
http://localhost:8080/#/1/2/3

致电$router.push(path: '3')会将网址设置为http://localhost:8080/#/3

关于Vue Router文档中的哈希:

  

vue-router的默认模式为哈希模式-它使用URL   哈希值以模拟完整的URL,以便在以下情况下不会重新加载页面:   URL发生了变化。