有时候登录需要返回到上一路由,这里给出一种解决思路:全局后置守卫记录下上一路由地址,登录时排除某些特殊地址,如果是注册忘记密码等则进入首页,否则回退至进入登录的前一页。
代码如下:
const onSubmit = (event) => {
//unFocus(event) 失活焦点
formRef.value.validate((valid)=>{
if(!valid){
return false
}
loading.value = true
store.dispatch("login",form).then(res=>{
// 首次进入无论什么页面都会是"/"
if (window.sessionStorage.prePath ==="/" ||
window.sessionStorage.prePath ==="/login" ||
window.sessionStorage.prePath ==="/register" ||
window.sessionStorage.prePath ==="/forgot") {
router.push("/")
} else {
router.go(-1)
}
/* 结合全局后置守卫
router.afterEach((to, from) => {
window.sessionStorage.prePath = from.path
}
*/
}).catch(res=>{
toast(res.msg,"error")
}).finally(()=>{
loading.value = false
})
})
}