微信扫一扫看面试题

关注面试题库

Vue.directive指令实现按钮级别权限控制

新建 role.js 文件

import Vue from 'vue';
// 获取用户角色, 可以从cookie中获取

function getRole() {
  return ['admin']
}

// 校验用户权限,传入一个数组
function authority(role) {
  return getRole().includes(role[0])
  // return role.includes(getRole())
}

// 注册一个全局自定义指令 `v-role`
Vue.directive('role', {
  inserted: (el, binding, vnode) => {
    // 如果没有权限就移除此节点
    if (!authority(binding.value)) {
      el.parentNode.removeChild(el);
    }
  }
})
export default authority


在main.js 引入role文件
import role from ‘./utils/role.js’

Vue.use(role )

<template>
  <div>
    <div v-role="['user', 'admin', 'superAdmin']">user</div>
    <div v-role="['admin', 'superAdmin']">admin</div>
    <div v-role="['superAdmin']">superAdmin</div>
  </div>
</template>

当 v-role="[‘user’, ‘admin’, ‘superAdmin’]" 时
在getRole 函数有对应的 admin 匹配 , 则当前的线索

喜欢的可以关注 前段面试题小程序, MST题库 ,大量面试题免费看
在这里插入图片描述

posted @ 2022-07-23 10:02  web前端面试小助手  阅读(71)  评论(0)    收藏  举报