vue-router使用编程式导航时路由不稳定的问题

尝试做一个SPA,使用Vue-router来做路由管理,
场景是这样的:
4个TAB页,tab由单独抽成一个组件,import导入Vue根实例,router实例注入Vue根实例以便于在组件中操作。
相关代码截图如下:
index.html的html代码,tab为4个TAB页按钮的组件
图片描述

实例注入
图片描述

路由配置,路由组件是异步加载的
图片描述
图片描述

tab组件,点击时调用注入的router实例的replace方法,page为对应的路由名称
图片描述
图片描述

以上就是相应的部分逻辑代码,理论上,切换TAB页URL的hash会改变也确实改变了,但是刷新页面发现有时会导航到index有时会停留在当前页,这是什么原因呢。

阅读 3.1k
3 个回答

已发现问题。应该是chrome浏览器下的一些兼容问题,在火狐和Edge下没有问题

为啥我感觉逻辑有点复杂呢。。。是不是我之前的写法有问题。。。汗。
做spa,可以先确定哪些是固定的,例如你这个tab,有一些会有头部什么的。把这些独立为一个组件,在app.vue引入tab,此时<tab/><router-view/>是平级的,然后让app这个页面上下布局,即<tab/>固定在下面,然后上面的路由视图一直变好了。

回到正题:没有遇到你说的问题。。。

楼主思路就错了,为何要主动 this.$router.replace(page),应该是官方推荐的编程式导航操作路由 编程式导航

推荐问题