Vue 如何实现登录后,跳转到登录之前要访问的页面

网友投稿 836 2022-11-18

Vue 如何实现登录后,跳转到登录之前要访问的页面

Vue 如何实现登录后,跳转到登录之前要访问的页面

Vue 如何实现登录后,跳转到登录之前要访问的页面

一、需求

有些时候,需要实现这样的功能:

举个例子说:

二、实现思路

那么如何实现这个需求呢。 用 store 来实现

在​​store.state​​​ 中新建一个变量​​lastVisitPath​​ 记录进入登录页面之前要去的 path登录成功之后,判断​​lastVisitPath​​ 这个变量是否有值,如果有,就跳到这个路径上去,并清空这个变量值

三、实现

在 router 的 ​​beforeEach​​​ 方法中判断,在跳转至登录之前记录这个 ​​lastVisitPath​​

// 引入 state 和 mutationcomputed: { ...mapState(['lastVisitRoute'])},methods: { ...mapMutations(['SET_LAST_VISIT_ROUTE']),}// if (token) {} else { store.commit('SET_LAST_VISIT_ROUTE', to.path) next({path: '/login'})}

登录成功后,如果存在 lastVisitPath 就跳转到它

// 引入 state 和 mutationcomputed: { ...mapState(['lastVisitRoute'])},methods: { ...mapMutations(['SET_LAST_VISIT_ROUTE']),}// if (this.lastVisitRoute){ this.$router.push({path: this.lastVisitRoute}) .then(res => { // 跳转成功后,清除这个 lastVisitRoute 变量值 this.SET_LAST_VISIT_ROUTE(null) }) .catch(error => { console.log(error) });} else { this.$router.push({path: '/'}).catch(error => { console.log(error) })}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:LeetCode80. 删除有序数组中的重复项 II
下一篇:js 对象数组去重
相关文章

 发表评论

暂时没有评论,来抢沙发吧~