Vue登录拦截 登录后继续跳转指定页面的操作


Posted in Javascript onAugust 04, 2020

在开发中我们经常遇到这样的需求,需要用户登录后才可以访问该页面,如果用户没有登录点击该页面时则自动跳转到登录页面,登录后又跳转到链接的页面而不是首页,这种问题该如何去做呢?

1、在路由器router下的 index.js 的配置中,给需要拦截登录的页面的路由上加一个meta: {loginRequest: true} ,其中loginRequest 变量自己可以随意定义

Vue登录拦截 登录后继续跳转指定页面的操作

2、在main.js文件里面添加beforeEach钩子函数

Vue登录拦截 登录后继续跳转指定页面的操作

解释:

router.beforeEach((to, from, next) => { } 三个参数:

to:即将要进入的目标 路由对象

from:当前导航正要离开的路由

next:(function函数) 调用next() 进行管道中的下一个钩子

next() 无参 进行 下一个钩子函数

next({ path:'/xxx' , query:{}}) 携带参数跳到xxx页面

3、登录页面login.vue,登录完成后,跳到指定页面或首页

Vue登录拦截 登录后继续跳转指定页面的操作

补充知识:vue实现登录后跳转到来源路由url

sessionStorage存储from.path来源的路由url,如果不是登录或者注册就拦截跳到登录页,如果是就放行

router.beforeEach(function(to,from,next){
 
  if(to.path!='/login' && to.path!='/register'){
    sessionStorage.setItem('referrer',from.path) //储存来源路由
    alert('请登录')
    next({
      path:'/login'
    })
  }else{
    next()
  }
 
})

登录后判断sessionStorage中是否有存储来源路由,如果有就跳转到这个路由

//获取来源页路由
var referrer = sessionStorage.getItem('referrer');
if(referrer != null){
  this.$router.push(referrer)
}else {
  this.$router.push('/home')
}

以上这篇Vue登录拦截 登录后继续跳转指定页面的操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery 性能优化指南 (1)
May 21 Javascript
JavaScrip实现PHP print_r的数功能(三种方法)
Nov 12 Javascript
滚动条响应鼠标滑轮事件实现上下滚动的js代码
Jun 30 Javascript
jQuery Ajax 全局调用封装实例代码详解
Jun 02 Javascript
PHP+jquery+ajax实现分页
Dec 09 Javascript
JS异步文件分片断点上传的实现思路
Dec 25 Javascript
javascript中BOM基础知识总结
Feb 14 Javascript
静态页面实现 include 引入公用代码的示例
Sep 25 Javascript
JavaScript中import用法总结
Jan 20 Javascript
Node.js动手撸一个静态资源服务器的方法
Mar 09 Javascript
Vue组件实现触底判断
Jun 26 Javascript
vue或react项目生产环境去掉console.log的操作
Sep 02 Javascript
vue 解决uglifyjs-webpack-plugin打包出现报错的问题
Aug 04 #Javascript
浅谈在vue-cli3项目中解决动态引入图片img404的问题
Aug 04 #Javascript
解决vuecli3中img src 的引入问题
Aug 04 #Javascript
简介JavaScript错误处理机制
Aug 04 #Javascript
vue 出现data-v-xxx的原因及解决
Aug 04 #Javascript
elementui更改el-dialog关闭按钮的图标d的示例代码
Aug 04 #Javascript
vue 实现根据data中的属性值来设置不同的样式
Aug 04 #Javascript
You might like
PHP 网页过期时间的控制代码
2009/06/29 PHP
php foreach 参数强制类型转换的问题
2010/12/10 PHP
ubuntu10.04配置 nginx+php-fpm模式的详解
2013/06/03 PHP
基于PHP实现等比压缩图片大小
2016/03/04 PHP
利用PHP判断是手机移动端还是PC端访问的函数示例
2017/12/14 PHP
JS代码格式化和语法着色V2
2006/10/14 Javascript
用javascript获取地址栏参数
2006/12/22 Javascript
把textarea中字符串里含有的回车换行替换成<br>的javascript代码
2007/04/20 Javascript
js DOM模型操作
2009/12/28 Javascript
页面定时刷新(1秒刷新一次)
2013/11/22 Javascript
jQuery validate插件实现ajax验证重复的2种方法
2016/01/22 Javascript
JavaScript实现解析INI文件内容的方法
2016/11/17 Javascript
angularjs ocLazyLoad分步加载js文件实例
2017/01/17 Javascript
js获取当前页的URL与window.location.href简单方法
2017/02/13 Javascript
JS回调函数深入理解
2019/10/16 Javascript
vue 动态表单开发方法案例详解
2019/12/02 Javascript
javascript实现拖拽碰撞检测
2020/03/12 Javascript
python判断一个集合是否为另一个集合的子集方法
2018/05/04 Python
Python Web编程之WSGI协议简介
2018/07/18 Python
python实现画五角星和螺旋线的示例
2019/01/20 Python
python使用phoenixdb操作hbase的方法示例
2019/02/28 Python
Python 调用 Outlook 发送邮件过程解析
2019/08/08 Python
解决os.path.isdir() 判断文件夹却返回false的问题
2019/11/29 Python
Python scrapy爬取小说代码案例详解
2020/07/09 Python
Html5移动端获奖无缝滚动动画实现示例
2018/06/25 HTML / CSS
浅析HTML5中header标签的用法
2016/06/24 HTML / CSS
Html5页面内使用JSON动画的实现
2019/01/29 HTML / CSS
HTML5 层的叠加的实现
2020/07/07 HTML / CSS
June Jacobs尊积帕官网:知名的spa水疗护肤品牌
2019/03/21 全球购物
北京银河万佳Java面试题
2012/03/21 面试题
表演方阵解说词
2014/02/08 职场文书
国际贸易专业个人鉴定
2014/02/22 职场文书
房屋产权证明书
2015/06/19 职场文书
pandas 实现将NaN转换为None
2021/05/14 Python
JavaScript设计模式之原型模式详情
2022/06/21 Javascript
MySQL存储过程及语法详解
2022/08/05 MySQL