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题库 ,大量面试题免费看
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)