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实现复选框全选/取消全选/反选及获得选择的值
Jun 12 Javascript
jQuery中prepend()方法用法实例
Dec 25 Javascript
js实现鼠标感应向下滑动隐藏菜单的方法
Feb 20 Javascript
jQuery实现在textarea指定位置插入字符或表情的方法
Mar 11 Javascript
JavaScript数据类型之基本类型和引用类型的值
Apr 01 Javascript
深入理解MVC中的时间js格式化
May 19 Javascript
canvas压缩图片转换成base64格式输出文件流
Mar 09 Javascript
微信小程序商城项目之商品属性分类(4)
Apr 17 Javascript
微信小程序实现张图片合成为一张并下载
Jul 16 Javascript
vue 解决遍历对象显示的顺序不对问题
Nov 07 Javascript
Node.js API详解之 readline模块用法详解
May 22 Javascript
google广告之另类js调用实现代码
Aug 22 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
DOTA2游戏同人动画《龙之血》导演接受采访
2021/03/05 欧美动漫
Breeze 文章管理系统 v1.0.0正式发布
2006/12/14 PHP
Notice: Trying to get property of non-object problem(PHP)解决办法
2012/03/11 PHP
Codeigniter整合Tank Auth权限类库详解
2014/06/12 PHP
PHP实现的简单日历类
2014/11/29 PHP
PHP实现递归复制整个文件夹的类实例
2015/08/03 PHP
PHP常见字符串处理函数用法示例【转换,转义,截取,比较,查找,反转,切割】
2016/12/24 PHP
浅谈php常用的7大框架的优缺点
2020/07/20 PHP
仿迅雷焦点广告效果(JQuery版)
2008/11/19 Javascript
javascript 获取图片颜色
2009/04/05 Javascript
在js中单选框和复选框获取值的方式
2009/11/06 Javascript
js实现超简单的展开、折叠目录代码
2015/08/28 Javascript
JavaScript实现点击文本自动定位到下拉框选中操作
2016/06/15 Javascript
Bootstrap table使用方法总结
2017/05/10 Javascript
angularjs中ng-bind-html的用法总结
2017/05/23 Javascript
angular或者js怎么确定选中ul中的哪几个li
2017/08/16 Javascript
nodejs实现截取上传视频中一帧作为预览图片
2017/12/10 NodeJs
JavaScript设计模式之观察者模式(发布订阅模式)原理与实现方法示例
2018/07/27 Javascript
Nodejs核心模块之net和http的使用详解
2019/04/02 NodeJs
如何使用Jquery动态生成二级选项列表
2020/02/06 jQuery
VUE UPLOAD 通过ACTION返回上传结果操作
2020/09/07 Javascript
Vue仿百度搜索功能
2020/12/28 Vue.js
Vue2.x-使用防抖以及节流的示例
2021/03/02 Vue.js
Python决策树和随机森林算法实例详解
2018/01/30 Python
ubuntu安装mysql pycharm sublime
2018/02/20 Python
查看Python依赖包及其版本号信息的方法
2019/08/13 Python
Python 多进程原理及实现
2020/12/21 Python
英国著名书店:Foyles
2018/12/01 全球购物
巴西手表购物网站:eclock
2019/03/19 全球购物
马来西亚在线健康商店:Medipal Malaysia
2020/04/13 全球购物
测试工程师岗位职责
2013/11/28 职场文书
部队领导证婚词
2014/01/12 职场文书
运动会开幕式解说词
2014/02/05 职场文书
2014年城管工作总结
2014/11/20 职场文书
小王子读书笔记
2015/06/29 职场文书
在 Python 中利用 Pool 进行多线程
2022/04/24 Python