微信扫一扫看面试题

关注面试题库

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 @   web前端面试小助手  阅读(64)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示