路由权限的实现,基本原理是添加一个全局的前置钩子函数router.beforeEach(hook),这个函数会在路由切
换开始时调用,即在用户登录时,获取用户权限表,通过权限表与白名单对比,利用addRoutes()方法动
态挂在路由,即实现权限控制。下面我将对至二级路由的权限控制的思路即重要代码分布介绍:
我大体介绍一下本人项目中需要用到控制的点:平台中有三种登录身份:主账号,子账号,运营者账号;对子账号和运营者账号
分别显示不同功能页面。项目开发之初,利用v-show写的死页面,后期为了实现主账号可动态控制子账号与运营者账号权限页
面,故而利用钩子函数实现控制。不同身份的路由权限表可以是以下格式:
// 子账号:[
// {name:'首页',path:'/index'},
// {name:'首页-异常设备',path:'/index/home2'},
// ]
// 运营者账户:[
// {name:'首页',path:'/index'},
// {name:'首页-收益看板',path:'/index/home1'},
// {name:'首页-异常设备',path:'/index/home2'},
// ]
具体格式可在学习完之后,自己定义;
第一步:设置router–index.js设置白名单(即不分权限都要显示的组件路由)和所有需要区别挂载的路由
大体格式如下:
1》引入
import Vue from 'vue'
import Router from 'vue-router'
const inner = () =>
import ('@/components/inner.vue');
const user = () =>
import ('@/components/user.vue'); //登录注册
const loginandregister = ()=>
import ('@/user/loginandregister.vue'); //登录注册 const forgetkey = () =>
import ('@