vue路由守卫,限制前端页面访问权限的例子


Posted in Javascript onNovember 11, 2019

今天给大家写一篇关于vue校验登录状态,如果是非法登录就跳转到登录页面的逻辑

首先需要写一个路由守卫,它的原理是每次路由发生变化时触发具体写法如下:

router.beforeEach((to, from, next) => {
  next()
})

beforeEach函数有三个参数:

to:即将进入的路由对象

from:当前导航即将离开的路由

next,进行管道中的一个钩子,如果执行完了,则导航的状态就是 confirmed (确认的);否则为false,终止导航。

使用案例

限制登陆功能,具体实现思路:每次跳转路由是判断本地 localStorage.getItem('token') 状态

首先找到router/index.js如下

import Vue from 'vue'
import Router from 'vue-router'
Vue.use(Router)
 
const router = new Router({
 routes: [{
   path: '/',
   name: 'HelloWorld',
   component: HelloWorld
  },
  {
   path: '/login',
   name: 'login',
   component: login
  }
 ]
})
//下面是重点 
router.beforeEach((to, from, next) => {
 let token = localStorage.getItem('token') 
 if (to.path == '/login') {
  next()
 } else {
  if (token == '' || token == null) {
   next('/login');
  } else {
   next()
  }
 }
 
})
 
export default router;

解释:index.js写成如上形式,用const router 接受 new Router对象,最后export暴露出去

router.beforeEach 在每次路由跳转出发

let token = localStorage.getItem('token') 获取本地没有没token 如果没有就跳到login页面 很简单的逻辑

以上这篇vue路由守卫,限制前端页面访问权限的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Jquery优化效率 提升性能解决方案
Sep 06 Javascript
javascript 使td内容不换行不撑开
Nov 29 Javascript
利用webqq协议使用python登录qq发消息源码参考
Apr 08 Javascript
js与jquery获取父级元素,子级元素,兄弟元素的实现方法
Jan 09 Javascript
jquery 字符串切割函数substring的用法说明
Feb 11 Javascript
jquery+easeing实现仿flash的载入动画
Mar 10 Javascript
7个jQuery最佳实践
Jan 12 Javascript
js实现点击按钮弹出上传文件的窗口
Dec 23 Javascript
js+html5实现页面可刷新的倒计时效果
Jul 15 Javascript
JS和JQuery实现雪花飘落效果
Nov 30 jQuery
微信小程序实现元素渐入渐出动画效果封装方法
May 18 Javascript
Bootstrap table 实现树形表格联动选中联动取消功能
Sep 30 Javascript
vue在路由中验证token是否存在的简单实现
Nov 11 #Javascript
vuex存储token示例
Nov 11 #Javascript
Vuex实现数据增加和删除功能
Nov 11 #Javascript
VUE:vuex 用户登录信息的数据写入与获取方式
Nov 11 #Javascript
vue 实现通过vuex 存储值 在不同界面使用
Nov 11 #Javascript
使用vuex存储用户信息到localStorage的实例
Nov 11 #Javascript
JS中比较两个Object数组是否相等方法实例
Nov 11 #Javascript
You might like
PHP 身份验证方面的函数
2009/10/11 PHP
PHP UTF8中文字符截断函数代码
2012/09/11 PHP
如何利用http协议发布博客园博文评论
2015/08/03 PHP
thinkPHP5框架分页样式类完整示例
2018/09/01 PHP
PHP的mysqli_ssl_set()函数讲解
2019/01/23 PHP
微信公众号实现扫码获取微信用户信息(网页授权)
2019/04/09 PHP
php多进程应用场景实例详解
2019/07/22 PHP
PHP cookie与session会话基本用法实例分析
2019/11/18 PHP
SlideView 图片滑动(扩展/收缩)展示效果
2010/08/01 Javascript
js获取当月最后一天实例代码
2013/11/19 Javascript
jQuery实现伸展与合拢panel的方法
2015/04/30 Javascript
全面解析JavaScript中的valueOf与toString方法(推荐)
2016/06/14 Javascript
Bootstrap导航条鼠标悬停下拉菜单
2017/01/04 Javascript
JS实现的验证身份证及获取地区功能示例
2017/01/16 Javascript
bootstrap可编辑下拉框jquery.editable-select
2017/10/12 jQuery
基于jQuery Ajax实现下拉框无刷新联动
2017/12/06 jQuery
完美解决axios跨域请求出错的问题
2018/02/05 Javascript
vue 2.x 中axios 封装的get 和post方法
2018/02/28 Javascript
vue双向数据绑定知识点总结
2018/04/18 Javascript
Python实现的下载8000首儿歌的代码分享
2014/11/21 Python
在Python的Django框架中生成CSV文件的方法
2015/07/22 Python
Python用list或dict字段模式读取文件的方法
2017/01/10 Python
关于Python的一些学习总结
2018/05/25 Python
python监控文件并且发送告警邮件
2018/06/21 Python
Django集成celery发送异步邮件实例
2019/12/17 Python
简单了解为什么python函数后有多个括号
2019/12/19 Python
win10安装python3.6的常见问题
2020/07/01 Python
详解PyQt5中textBrowser显示print语句输出的简单方法
2020/08/07 Python
CSS3的常见transformation图形变化用法小结
2016/05/13 HTML / CSS
中国电视购物:快乐购
2017/02/04 全球购物
可口可乐唇膏:Lip Smackers
2019/08/27 全球购物
网上开店必备创业计划书
2014/01/26 职场文书
完美主义个人的自我评价
2014/02/17 职场文书
2014爱耳日宣传教育活动总结
2014/03/09 职场文书
小学数学教学反思范文
2016/02/16 职场文书
关于Javascript闭包与应用的详解
2021/04/22 Javascript