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 相关文章推荐
jQuery创建自定义的选择器用以选择高度大于100的超链接实例
Mar 18 Javascript
动态创建按钮的JavaScript代码
Jan 29 Javascript
体验jQuery和AngularJS的不同点及AngularJS的迷人之处
Feb 02 Javascript
vue组件实现文字居中对齐的方法
Aug 23 Javascript
关于HTML5的data-*自定义属性的总结
May 05 Javascript
Angular中的ng-template及angular 使用ngTemplateOutlet 指令的方法
Aug 08 Javascript
对angular 监控数据模型变化的事件方法$watch详解
Oct 09 Javascript
微信小程序生成二维码的示例代码
Mar 29 Javascript
D3.js(v3)+react 实现带坐标与比例尺的柱形图 (V3版本)
May 09 Javascript
js判断复选框是否选中的方法示例【基于jQuery】
Oct 10 jQuery
JS实现网页烟花动画效果
Mar 10 Javascript
通过实例了解JS执行上下文运行原理
Jun 17 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
ThinkPHP的cookie和session冲突造成Cookie不能使用的解决方法
2014/07/01 PHP
php+curl 发送图片处理代码分享
2015/07/09 PHP
基于PHP+jQuery+MySql实现红蓝(顶踩)投票代码
2015/08/25 PHP
Ajax+Jpgraph实现的动态折线图功能示例
2019/02/11 PHP
php解析非标准json、非规范json的方式实例
2020/12/10 PHP
图片之间的切换
2006/06/26 Javascript
js document.write()使用介绍
2014/02/21 Javascript
判断及设置浏览器全屏模式
2014/04/20 Javascript
jquery使用slideDown实现模块缓慢拉出效果的方法
2015/03/27 Javascript
JS弹出层遮罩,隐藏背景页面滚动条细节优化分析
2016/04/29 Javascript
js 动态给元素添加、移除事件的实现方法
2016/07/19 Javascript
js 获取元素所有兄弟节点的实现方法
2016/09/06 Javascript
JavaScript生成.xls文件的代码
2016/12/22 Javascript
JavaScript简单拖拽效果(1)
2017/05/17 Javascript
JS实现十字坐标跟随鼠标效果
2017/12/25 Javascript
浅谈vue中.vue文件解析流程
2018/04/24 Javascript
AngularJS实现的base64编码与解码功能示例
2018/05/17 Javascript
React styled-components设置组件属性的方法
2018/08/07 Javascript
微信小程序实现留言板
2018/10/31 Javascript
React性能优化系列之减少props改变的实现方法
2019/01/17 Javascript
js变量声明var使用与不使用的区别详解
2019/01/21 Javascript
详解微信小程序文件下载--视频和图片
2019/04/24 Javascript
vue+vant-UI框架实现购物车的复选框全选和反选功能
2019/11/05 Javascript
Vue 实现监听窗口关闭事件,并在窗口关闭前发送请求
2020/09/01 Javascript
[01:48:04]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant BO3 第一场 2月7日
2021/03/11 DOTA
Python selenium 父子、兄弟、相邻节点定位方式详解
2016/09/15 Python
Python机器学习之决策树算法
2017/12/22 Python
Python学习笔记之自定义函数用法详解
2019/06/08 Python
Python实现个人微信号自动监控告警的示例
2019/07/03 Python
python验证码图片处理(二值化)
2019/11/01 Python
利用python画出AUC曲线的实例
2020/02/28 Python
canvas之万花筒效果的简单实现(推荐)
2016/08/16 HTML / CSS
大学生实习鉴定评语
2014/04/25 职场文书
餐饮服务员岗位职责
2015/02/09 职场文书
党员承诺书范文2015
2015/04/27 职场文书
mysql创建存储过程及函数详解
2021/12/04 MySQL