[关闭]
@2890594972 2018-05-25T07:14:00.000000Z 字数 768 阅读 2726

vue拦截重定向

1511c


vue拦截重定向

当我们想去某个页面,但是因为需要登录,才能去。
如果登录后,如何重定向到之前想去的那个页面。

image_1ceb1ag6a3591k8j2t5m3agpd49.png-171kB

如何实现

第一步:通过拦截器,记录重定向路径

  1. /* 统一拦截器开始 */
  2. router.beforeEach((to, from, next) => {
  3. if(to.meta.requireAuth){// 代表需要登录
  4. //判断有没有登录
  5. if(sessionStorage.getItem('userInfo')){//有值,代表登录过了
  6. next();
  7. }else{
  8. next({
  9. path:'Login',
  10. query: {
  11. redirect: to.fullPath
  12. }
  13. });
  14. }
  15. }else{
  16. next();
  17. }
  18. })
  19. /* 统一拦截器结束 */

image_1ceb1cr3q1ssl1mbbdrbjeb1vjo56.png-60.5kB

第二步:在登录页面,直接跳转

  1. //登录请求
  2. login(){
  3. /* 专门用来写请求逻辑 */
  4. const params = new URLSearchParams();
  5. params.append('cellphone', this.cellphone);
  6. params.append('password', this.password);
  7. login(params).then(res=>{
  8. const data = res.data;
  9. if(data.code === 200){
  10. //正常登录
  11. alert('登录成功');
  12. // 存数据
  13. sessionStorage.setItem('userInfo',JSON.stringify(data.data));
  14. // this.$router.push({path:'Mine'});
  15. console.log(this.$route.query);
  16. this.$router.push(this.$route.query.redirect || '/Mine')
  17. }else{
  18. alert(data.data);
  19. }
  20. })
  21. }

image_1ceb1jbngcf41sqmpor1skb17455j.png-92.2kB

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注