Vue实现多角色登录,Vue-Router路由守卫控制权限页面

本文主要是介绍Vue实现多角色登录,Vue-Router路由守卫控制权限页面,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

实现页面侧边栏和头部不变,当点击某个功能时,只有主体部分发生变化,这要用到子路由技术

我的项目结构如上,其中包含侧边栏和头部的文件是Manage.vue,主页面是Home.vue,个人页面是Person.vue,用户表单页面时Patient.vue,其中Home.vue,Person.vue,Patient.vue都是Manage.vue的子路由

1.添加子路由

 在父级路由Manage.vue中添加了四个子路由

2.添加<router-view> 

        <el-main><router-view  /></el-main>

将主页面部分的代码转换成<router-view>,这样,当我们进入某个子路由路径时,该区域就会显示该路由对应的页面

 效果如下:

主页面: 

用户信息页面: 

可以看到,主页面在变,而侧边栏和头部样式没有改变 

3.添加路由守护

为了防止非管理员角色,通过url路径栏访问到只有管理员才能访问的页面,这时我们就需要在index.js文件中添加路由守卫 

router.beforeEach((to, from, next) => {//to 到达的路由信息//from 开始的路由信息//next 完成页面跳转let user = JSON.parse(localStorage.getItem('user') || '{}')let adminPaths= ['/patient']//如果这个角色不是管理员,并且他访问的路径是管理员才能访问的路径,就让他跳转到403if (user.role!=='管理员' && adminPaths.includes(to.path)){next('/403')}else{next()}
})

路由守卫中有三个参数,to表示到达的路由信息,from表示开始的路由信息,next表示完成页面跳转

  • let adminPaths = ['/patient']  添加管理员才能访问的路径
  • adminPaths.includes(to.path)  将adminPaths添加到跳转路径里 

效果展示:

当非管理员角色,访问管理员才能访问的页面,就会跳转到403页面

 4.添加404页面

当用户访问的路径找不到时,就会跳转到404页面,添加404页面的路由

  • ' * ' :表示这个路由将匹配所有未被其他路由匹配到的路径
    {path: '*',name: '404',meta:{name:'无法访问'},component:()=> import('../views/404.vue')},

这篇关于Vue实现多角色登录,Vue-Router路由守卫控制权限页面的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/918700

相关文章

C++对象布局及多态实现探索之内存布局(整理的很多链接)

本文通过观察对象的内存布局,跟踪函数调用的汇编代码。分析了C++对象内存的布局情况,虚函数的执行方式,以及虚继承,等等 文章链接:http://dev.yesky.com/254/2191254.shtml      论C/C++函数间动态内存的传递 (2005-07-30)   当你涉及到C/C++的核心编程的时候,你会无止境地与内存管理打交道。 文章链接:http://dev.yesky

JAVA读取MongoDB中的二进制图片并显示在页面上

1:Jsp页面: <td><img src="${ctx}/mongoImg/show"></td> 2:xml配置: <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001

vue, 左右布局宽,可拖动改变

1:建立一个draggableMixin.js  混入的方式使用 2:代码如下draggableMixin.js  export default {data() {return {leftWidth: 330,isDragging: false,startX: 0,startWidth: 0,};},methods: {startDragging(e) {this.isDragging = tr

通过SSH隧道实现通过远程服务器上外网

搭建隧道 autossh -M 0 -f -D 1080 -C -N user1@remotehost##验证隧道是否生效,查看1080端口是否启动netstat -tuln | grep 1080## 测试ssh 隧道是否生效curl -x socks5h://127.0.0.1:1080 -I http://www.github.com 将autossh 设置为服务,隧道开机启动

JavaScript全屏,监听页面是否全屏

在JavaScript中,直接监听浏览器是否进入全屏模式并不直接支持,因为全屏API主要是关于请求和退出全屏模式的,而没有直接的监听器可以告知页面何时进入或退出全屏模式。但是,你可以通过在你的代码中跟踪全屏状态的改变来模拟这个功能。 以下是一个基本的示例,展示了如何使用全屏API来请求全屏模式,并在请求成功或失败时更新一个状态变量: javascriptlet isInFullscreen =

时序预测 | MATLAB实现LSTM时间序列未来多步预测-递归预测

时序预测 | MATLAB实现LSTM时间序列未来多步预测-递归预测 目录 时序预测 | MATLAB实现LSTM时间序列未来多步预测-递归预测基本介绍程序设计参考资料 基本介绍 MATLAB实现LSTM时间序列未来多步预测-递归预测。LSTM是一种含有LSTM区块(blocks)或其他的一种类神经网络,文献或其他资料中LSTM区块可能被描述成智能网络单元,因为

vue项目集成CanvasEditor实现Word在线编辑器

CanvasEditor实现Word在线编辑器 官网文档:https://hufe.club/canvas-editor-docs/guide/schema.html 源码地址:https://github.com/Hufe921/canvas-editor 前提声明: 由于CanvasEditor目前不支持vue、react 等框架开箱即用版,所以需要我们去Git下载源码,拿到其中两个主

React+TS前台项目实战(十七)-- 全局常用组件Dropdown封装

文章目录 前言Dropdown组件1. 功能分析2. 代码+详细注释3. 使用方式4. 效果展示 总结 前言 今天这篇主要讲全局Dropdown组件封装,可根据UI设计师要求自定义修改。 Dropdown组件 1. 功能分析 (1)通过position属性,可以控制下拉选项的位置 (2)通过传入width属性, 可以自定义下拉选项的宽度 (3)通过传入classN

android一键分享功能部分实现

为什么叫做部分实现呢,其实是我只实现一部分的分享。如新浪微博,那还有没去实现的是微信分享。还有一部分奇怪的问题:我QQ分享跟QQ空间的分享功能,我都没配置key那些都是原本集成就有的key也可以实现分享,谁清楚的麻烦详解下。 实现分享功能我们可以去www.mob.com这个网站集成。免费的,而且还有短信验证功能。等这分享研究完后就研究下短信验证功能。 开始实现步骤(新浪分享,以下是本人自己实现

js+css二级导航

效果 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Con