vue项目使用router.replace后需要返回两次的解决方案
vue项目使用router.replace后需要返回两次的解决方案问题所在:a页面 push到 b页面, b页面 push到 c页面,c页面 replace到 b页面,这时候点击按钮(router.go(-1)),没有效果,需点击两次才能返回到a页面中!分析:页面跳转流程: a => b => c => b路由栈:a => b => b就路由栈说明:栈中b页面替代了c
·
vue项目使用router.replace后需要返回两次的解决方案
问题所在:
a页面 push到 b页面, b页面 push到 c页面,c页面 replace到 b页面,这时候点击按钮(router.go(-1)),没有效果,需点击两次才能返回到a页面中!
分析:
页面跳转流程: a => b => c => b
路由栈:a => b => b
就路由栈说明:栈中b页面替代了c页面,所以路由栈中不存在c路由,因此在我们在点击第一次返回后,其实是从一个b页面返回到另一个b页面
方案一:
在点击使用replace的代码后面添加一条路由返回的代码 (推荐使用)
this.$router.replace('/你的路由名字')
this.$router.go(-1) //重点
方案二:
在点击后退的按钮处 添加判断,点击后还是当前页面,则再次后退
this.$router.go(-1)
setTimeout(() => {
if (this.$route.name === 'hello') {
this.$router.go(-1)
}
}, 500)
扫码加q群
更多推荐
已为社区贡献4条内容
所有评论(0)