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源码分析-05异步队列 Deferred 使用介绍
Nov 14 Javascript
JS滚轮事件onmousewheel使用介绍
Nov 01 Javascript
css样式标签和js语法属性区别
Nov 06 Javascript
JQuery弹出炫丽对话框的同时让背景变灰色
May 22 Javascript
html的DOM中document对象anchors集合用法实例
Jan 21 Javascript
bootstrap表格分页实例讲解
Dec 30 Javascript
微信小程序 解决swiper不显示图片的方法
Jan 04 Javascript
关于vue里页面的缓存详解
Nov 04 Javascript
element表格翻页第2页从1开始编号(后端从0开始分页)
Dec 10 Javascript
vue实现移动端触屏拖拽功能
Aug 21 Javascript
利用node.js开发cli的完整步骤
Dec 29 Javascript
node.js使用express-fileupload中间件实现文件上传
Jul 16 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中养成7个面向对象的好习惯
2010/01/28 PHP
php下保存远程图片到本地的办法
2010/08/08 PHP
php自动识别文件编码并转换为UTF-8的方法
2014/06/12 PHP
php获取根域名方法汇总
2014/10/28 PHP
php自动加载方式集合
2016/04/04 PHP
使用TextRange获取输入框中光标的位
2006/10/14 Javascript
JavaScript语言中的Literal Syntax特性分析
2007/03/08 Javascript
javascript 自定义事件初探
2009/08/21 Javascript
解决jquery中美元符号命名冲突问题
2014/01/08 Javascript
js校验表单后提交表单的三种方法总结
2014/02/28 Javascript
JS逆序遍历实现代码
2014/12/02 Javascript
javascript中的五种基本数据类型
2015/08/26 Javascript
学习JavaScript设计模式之状态模式
2016/01/08 Javascript
JS实现弹出居中的模式窗口示例
2016/06/20 Javascript
JavaScript实现解析INI文件内容的方法
2016/11/17 Javascript
从零学习node.js之文件操作(三)
2017/02/21 Javascript
AngularJS集合数据遍历显示的实例
2017/12/27 Javascript
深入浅析var,let,const的异同点
2018/08/07 Javascript
vue.js引入外部CSS样式和外部JS文件的方法
2019/01/06 Javascript
在Vue.js中使用TypeScript的方法
2020/03/19 Javascript
[44:40]KG vs LGD 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
[38:54]完美世界DOTA2联赛PWL S2 Rebirth vs LBZS 第一场 11.28
2020/12/01 DOTA
python实现从一组颜色中找出与给定颜色最接近颜色的方法
2015/03/19 Python
利用Python开发微信支付的注意事项
2016/08/19 Python
利用python获取Ping结果示例代码
2017/07/06 Python
python批量解压zip文件的方法
2019/08/20 Python
tensorflow estimator 使用hook实现finetune方式
2020/01/21 Python
解决pyinstaller打包运行程序时出现缺少plotly库问题
2020/06/02 Python
巴西葡萄酒销售网站:Wine.com.br
2017/11/07 全球购物
巴西独家产品和现场演示购物网站:Shoptime
2019/07/11 全球购物
小学生感恩老师演讲稿
2014/08/28 职场文书
2014年公司工作总结
2014/11/22 职场文书
后勤工作个人总结
2015/02/28 职场文书
采购内勤岗位职责
2015/04/13 职场文书
学风建设主题班会
2015/08/17 职场文书
小学生教师节广播稿
2015/08/19 职场文书