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动态添加 input type=file的实现代码
Jun 14 Javascript
SinaEditor使用方法详解
Dec 28 Javascript
把字符串按照特定的字母顺序进行排序的js代码
Jan 28 Javascript
js实现照片墙功能实例
Feb 05 Javascript
JavaScript实现的CRC32函数示例
Nov 23 Javascript
原生Javascript插件开发实践
Jan 09 Javascript
javascript实现延时显示提示框效果
Jun 01 Javascript
Vue列表页渲染优化详解
Jul 24 Javascript
JS中的事件委托实例浅析
Mar 22 Javascript
countUp.js实现数字动态变化效果
Oct 17 Javascript
基于Vue+ElementUI的省市区地址选择通用组件
Nov 20 Javascript
使用js原生实现年份轮播选择效果实例
Jan 12 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获取url字符串截取路径的文件名和扩展名的函数
2010/01/22 PHP
PHP CURL 多线程操作代码实例
2015/05/13 PHP
PHP版微信第三方实现一键登录及获取用户信息的方法
2016/10/14 PHP
PHP带节点操作的无限分类实现方法详解
2016/11/09 PHP
php读取出一个文件夹及其子文件夹下所有文件的方法示例
2017/06/15 PHP
ThinkPHP5.1的权限控制怎么写?分享一个AUTH权限控制
2021/03/09 PHP
JavaScript更改class和id的方法
2008/10/10 Javascript
javascript 动态table添加colspan\rowspan 参数的方法
2009/07/25 Javascript
基于JavaScript实现跳转提示页面
2016/09/24 Javascript
xcode中获取js文件的路径方法(推荐)
2016/11/05 Javascript
vue中如何引入jQuery和Bootstrap
2017/04/10 jQuery
JavaScript实现简单动态进度条效果
2018/04/06 Javascript
element-ui表格列金额显示两位小数的方法
2018/08/24 Javascript
Vue组件的使用及个人理解与介绍
2019/02/09 Javascript
仿ElementUI实现一个Form表单的实现代码
2019/04/23 Javascript
python读取浮点数和读取文本文件示例
2014/05/06 Python
wxPython事件驱动实例详解
2014/09/28 Python
Python实现基于权重的随机数2种方法
2015/04/28 Python
Python封装shell命令实例分析
2015/05/05 Python
深入了解和应用Python 装饰器 @decorator
2019/04/02 Python
Python opencv实现人眼/人脸识别以及实时打码处理
2019/04/29 Python
python logging添加filter教程
2019/12/24 Python
pip安装tensorflow的坑的解决
2020/04/19 Python
python 追踪except信息方式
2020/04/25 Python
记录模型训练时loss值的变化情况
2020/06/16 Python
迪卡侬波兰体育用品商店:Decathlon波兰
2020/03/31 全球购物
外企C语言笔试题
2013/11/10 面试题
应届生求职推荐信
2013/10/28 职场文书
集体婚礼证婚词
2014/01/13 职场文书
市场营销求职信范文
2014/02/21 职场文书
历史专业学生的自我评价
2014/02/28 职场文书
2014年幼儿园国庆主题活动方案
2014/09/16 职场文书
离职感谢信
2015/01/21 职场文书
史上最牛的辞职信
2015/02/28 职场文书
少年派的奇幻漂流观后感
2015/06/08 职场文书
二胎满月酒致辞
2015/07/29 职场文书