首页 > web前端 > js教程 > vue实现登录后页面跳转到之前页面实例分享

vue实现登录后页面跳转到之前页面实例分享

小云云
发布: 2018-01-09 09:49:13
原创
3972 人浏览过

在开发中我们经常遇到这样的需求,需要用户直接点击一个链接进入到一个页面,用户点击后链接后会触发401拦截返回登录界面,登录后又跳转到链接的页面而不是首页,这种问题该如何去做呢?本文主要给大家分享了vue实现登录后页面跳转到之前页面的一个功能,有这方便需要的朋友学习参考下吧。希望能帮助到大家。

先说一下我们需要用到的几个API:

1.router.currentRoute:当前的路由信息对象,我们可以通过router.currentRoute.fullPath获得解析后的 URL,包含查询参数和 hash 的完整路径,如果要访问的页面的路由有命名(name)的话,可以通过router.currentRoute.name获得当前路由的名称。

2.router.replace:作用和router.push相同,不过它不会向history添加新纪录,而是替换当前的history记录。

由于大家的代码写的都不一样,我就不放我具体的实现代码,简单介绍一下思路:

1.用户点开链接后,跳转到的目标的路由页面,然后触发401拦截器,返回登录页面:


//401拦截
if(status == "401"){
  router.push("/login")   
}
登录后复制

2.我们可以在401拦截的时候将目标链接保存在url中:


if (status == 401) {
   //判断当前的路由是否是目标路由
   if(router.currentRoute.name == "target"){
    //跳转回login路由,并把目标路由的url路径保存在login的query中
    router.replace({
     name:"login",
     query: {redirect: router.currentRoute.fullPath}
    })
   }else{
    /* 普通401拦截直接返回到登录页面 */
    router.push('/login');
   }
  }
登录后复制

3.点击登录后使用url上保存的query直接跳转回目标页面


router.push({path:decodeURIComponent(url)});
登录后复制

相关推荐:

微信小程点击文字实现页面跳转功能的方法

关于html页面跳转传递参数问题解答

HTML页面跳转及参数传递问题

以上是vue实现登录后页面跳转到之前页面实例分享的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板