常常作中后台系统,此类系统的权限是比较重要,拿本身作过的一些项目作个笔记。前端
Vue实现的中后台管理系统。按钮操做权限的空置通常都是经过自定义指令Vue.directive。vue
<el-button v-has="fq-pms" type="primary">按钮</el-button>
一般咱们会把从后台请求过来的数据存贮到Vuex或localStorage,接下来咱们先注册一个全局自定义指令并监控它api
Vue.directive('has',{ bind:function(el,binding){ const permissons = ['lcj'] //指令列表
if (has(binding.value, permissions)) { el.parentNode.removeChild(el);//调用元素父级删除,有时间父元素为渲染出来能够把bind换成inserted } } })
has函数函数
function has(value, permissions) { let isExist = true; if (permissions === undefined||permissions===null || permissions.length === 0) { return true; } for (let i = 0; i < permissions.length; i++) { if (permissions[i] === value) { isExist = false; break; } } return isExist; }
bind是Vue.directive的五个生命周期(钩子函数),按照生命周期 bind>inserted>update>componentUpdate>unbindspa
通常是经过操做权限是经过按钮的,菜单权限是经过前端路由和后台路由来判断的。下章会介绍Vue-router配置后台路由实现菜单权限的code