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


Posted in Javascript onJanuary 07, 2018

在开发中我们经常遇到这样的需求,需要用户直接点击一个链接进入到一个页面,用户点击后链接后会触发401拦截返回登录界面,登录后又跳转到链接的页面而不是首页,这种问题该如何去做呢?

先说一下我们需要用到的几个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)});

以上就是我们分享的功能实现代码,感谢你对三水点靠木的支持。

Javascript 相关文章推荐
js/jQuery对象互转(快速操作dom元素)
Feb 04 Javascript
深入分析JSONP跨域的原理
Dec 10 Javascript
浅析Javascript匿名函数与自执行函数
Feb 06 Javascript
Javascript 字符串模板的简单实现
Feb 13 Javascript
基于JavaScript实现 网页切出 网站title变化代码
Apr 03 Javascript
避免jQuery名字冲突 noConflict()方法
Jul 30 Javascript
jQuery插件ajaxFileUpload异步上传文件
Oct 19 Javascript
Bootstrap图片轮播效果详解
Oct 17 Javascript
JS/jQuery实现超简单的Table表格添加,删除行功能示例
Jul 31 jQuery
微信小程序上传图片并等比列压缩到指定大小的实例代码
Oct 24 Javascript
vue学习笔记之作用域插槽实例分析
Feb 01 Javascript
react-intl实现React国际化多语言的方法
Sep 27 Javascript
Nginx 配置多站点vhost 的方法
Jan 07 #Javascript
express+mockjs实现模拟后台数据发送功能
Jan 07 #Javascript
使用mock.js随机数据和使用express输出json接口的实现方法
Jan 07 #Javascript
使用 Node.js 开发资讯爬虫流程
Jan 07 #Javascript
CentOS环境中MySQL修改root密码方法
Jan 07 #Javascript
12条写出高质量JS代码的方法
Jan 07 #Javascript
js数组方法reduce经典用法代码分享
Jan 07 #Javascript
You might like
Classes and Objects in PHP5-面向对象编程 [1]
2006/10/09 PHP
ThinkPHP实现批量删除数据的代码实例
2014/07/02 PHP
php flush无效,IIS7下php实时输出的方法
2016/08/25 PHP
PHP高并发和大流量解决方案整理
2019/12/24 PHP
Yii实现微信公众号场景二维码的方法实例
2020/08/30 PHP
网页加载时页面显示进度条加载完成之后显示网页内容
2012/12/23 Javascript
JQuery表格内容过滤的实现方法
2013/07/05 Javascript
js点击返回跳转到指定页面实现过程
2020/08/20 Javascript
详解jQuery lazyload 懒加载
2016/12/19 Javascript
jQuery实现圣诞节礼物传送(花式轮播)
2016/12/25 Javascript
JavaScript中 DOM操作方法小结
2017/04/25 Javascript
在vue中读取本地Json文件的方法
2018/09/06 Javascript
node版本管理工具n包使用教程详解
2018/11/09 Javascript
js实现弹出框的拖拽效果实例代码详解
2019/04/16 Javascript
学习RxJS之JavaScript框架Cycle.js
2019/06/17 Javascript
javascript简单实现深浅拷贝过程详解
2019/10/08 Javascript
[00:32]2018DOTA2亚洲邀请赛VGJ.T出场
2018/04/03 DOTA
[08:40]Navi Vs Newbee
2018/06/07 DOTA
使用Python生成url短链接的方法
2015/05/04 Python
Python中的lstrip()方法使用简介
2015/05/19 Python
python文件的md5加密方法
2016/04/06 Python
Python发展史及网络爬虫
2019/06/19 Python
python函数与方法的区别总结
2019/06/23 Python
python求最大值最小值方法总结
2019/06/25 Python
CSS3线性渐变简单实现以及该属性在浏览器中的不同
2012/12/12 HTML / CSS
采购主管岗位职责
2014/02/01 职场文书
情况说明书格式范文
2014/05/06 职场文书
关于环保的标语
2014/06/13 职场文书
民主评议党员自我评议范文2014
2014/09/26 职场文书
借款民事起诉状范文
2015/05/19 职场文书
羊脂球读书笔记
2015/06/30 职场文书
2015年防灾减灾工作总结
2015/07/24 职场文书
教师法制教育培训学习心得体会
2016/01/14 职场文书
入党心得体会
2019/06/20 职场文书
详解Java实现设计模式之责任链模式
2021/06/23 Java/Android
Python多线程 Queue 模块常见用法
2021/07/04 Python