Vue3登录路由回退判断

350 阅读1分钟

有时候登录需要返回到上一路由,这里给出了一种解决思路:全局后置守卫记录下上一路由地址,登录时排除某些特殊地址,如果是注册忘记密码等则进入首页,否则回退至进入登录的前一页。

9bcc452fe2ef85339ef4f54cdc5dc7f3_bVc7NSU.png 代码如下: 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

    })

})

}