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 相关文章推荐
JSON扫盲帖 JSON.as类教程
Feb 16 Javascript
ASP.NET jQuery 实例4(复制TextBox的文本到本地剪贴板上)
Jan 13 Javascript
js图片自动轮播代码分享(js图片轮播)
May 06 Javascript
修复bash漏洞的shell脚本分享
Dec 31 Javascript
AngularJS中的模块详解
Jan 29 Javascript
JavaScript判断变量是否为数组的方法(Array)
Feb 24 Javascript
详解jQuery中的DOM操作
Dec 23 Javascript
基于ajax和jsonp的原生封装(实例)
Oct 16 Javascript
微信小程序自定义可滑动顶部TabBar选项卡实现页面切换功能示例
May 14 Javascript
优雅的使用javascript递归画一棵结构树示例代码
Sep 22 Javascript
element的el-table中记录滚动条位置的示例代码
Nov 06 Javascript
Vue中keep-alive组件的深入理解
Aug 23 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
星际争霸任务指南——人族
2020/03/04 星际争霸
php daodb插入、更新与删除数据
2009/03/19 PHP
php Xdebug的安装与使用详解
2013/06/20 PHP
php 表单提交大量数据发生丢失的解决方法
2014/03/03 PHP
php操作redis中的hash和zset类型数据的方法和代码例子
2014/07/05 PHP
jQuery学习笔记之DOM对象和jQuery对象
2010/12/22 Javascript
JS重要知识点小结
2011/11/06 Javascript
尝试在让script的type属性等于text/html
2013/01/15 Javascript
ajax请求get与post的区别总结
2013/11/04 Javascript
js实现日期级联效果
2014/01/23 Javascript
javascript格式化日期时间方法汇总
2015/06/19 Javascript
Jquery attr()方法 属性赋值和属性获取详解
2016/04/15 Javascript
Bootstrap框架动态生成Web页面文章内目录的方法
2016/05/12 Javascript
分享jQuery网页元素拖拽插件
2020/12/01 Javascript
基于BootStrap环境写jQuery tabs插件
2016/07/12 Javascript
轻松掌握JavaScript中介者模式
2016/08/26 Javascript
Angular6新特性之Angular Material
2018/12/28 Javascript
node.js使用 http-proxy 创建代理服务器操作示例
2020/02/10 Javascript
Node.js API详解之 string_decoder用法实例分析
2020/04/29 Javascript
js实现手表表盘时钟与圆周运动
2020/09/18 Javascript
JavaScript前后端JSON使用方法教程
2020/11/23 Javascript
[34:08]2018DOTA2亚洲邀请赛3月29日 小组赛B组 VP VS EG
2018/03/30 DOTA
[00:23]魔方之谜解锁款式
2018/12/20 DOTA
基于Python实现文件大小输出
2016/01/11 Python
Python简单检测文本类型的2种方法【基于文件头及cchardet库】
2016/09/18 Python
详解python tkinter教程-事件绑定
2019/03/28 Python
Python socket非阻塞模块应用示例
2019/09/12 Python
Python 获取项目根路径的代码
2019/09/27 Python
Python socket实现的文件下载器功能示例
2019/11/15 Python
pytorch下使用LSTM神经网络写诗实例
2020/01/14 Python
详解pandas.DataFrame.plot() 画图函数
2020/06/14 Python
HTML5新增元素如何兼容旧浏览器有哪些方法
2014/05/09 HTML / CSS
单位在职证明书
2014/09/11 职场文书
班子查摆四风个人对照检查材料思想汇报
2014/10/04 职场文书
通知书大全
2015/04/27 职场文书
Nginx性能优化之Gzip压缩设置详解(最大程度提高页面打开速度)
2022/02/12 Servers