【发布时间】:2021-06-22 20:14:19
【问题描述】:
用 Vue2 可以看到在哪里...
this.$router.go(-1)
会带你去吗?
我们有一个用例可以将用户重定向到他们登录后的最后一页,除非那是忘记密码的页面。在这种情况下,我们希望将它们发送回主页。
最好的方法是什么?
【问题讨论】:
标签: vue.js vuejs2 vue-router
用 Vue2 可以看到在哪里...
this.$router.go(-1)
会带你去吗?
我们有一个用例可以将用户重定向到他们登录后的最后一页,除非那是忘记密码的页面。在这种情况下,我们希望将它们发送回主页。
最好的方法是什么?
【问题讨论】:
标签: vue.js vuejs2 vue-router
您可以使用beforeRouteEnter 导航守卫来跟踪之前的路线(存储在from):
export default {
beforeRouteEnter(to, from, next) {
next(vm => {
vm._backRoute = from.path
})
},
methods: {
goBack() {
if (this._backRoute === '/reset-password') {
this.$router.push({ name: 'Home' })
} else {
this.$router.go(-1)
}
}
}
}
您可以阅读window.history.state.back 以提前了解 返回 状态:
export default {
methods: {
goBack() {
if (window.history.state.back === '/reset-password') {
this.$router.push({ name: 'Home' })
} else {
this.$router.go(-1)
}
}
}
}
【讨论】:
beforeRouteEnter 跟踪之前的路由。查看更新的答案。