自定义指令按钮权限

1、指令文件

javascript 复制代码
// 判断按钮权限逻辑
const checkPermission = (el, binding) => {
  // 获取自定义指令传过来的数组(binding.value)
  const btnRoles = binding.value
  console.log(btnRoles)
  // 取一下本地存的账号权限
  // const userRoles = JSON.parse(localStorage.getItem('role'))
  const userRoles = ['super', 'normal']
  // 判断自定义指令的传值,在账号权限数组中能否找到
  if (btnRoles) {
    // 能找到返回true
    const hasPermission = userRoles.some((v) => {
      return btnRoles.includes(v)
    })
    // 找不到返回false,使用自定义指令的钩子函数,操作dom元素删除该节点
    if (!hasPermission) {
      el.parentNode && el.parentNode.removeChild(el)
    }
  } else {
    throw new Error(`传入关于权限的数组,如 v-permission="['super','normal']"`)
  }
}

// 导出一个对象用作自定义指令的第二个参数
export default checkPermission

2、main.js文件引入,挂载在vue实例上

javascript 复制代码
import checkPermission from './plugins/directive/permission'
const app = createApp({})
app.directive('permission', checkPermission)
app.mount('#app')

3、页面使用

html 复制代码
    <Button v-permission="'super'">super</Button>
    <Button v-permission="'normal'">normal</Button>
    <Button v-permission="'other'">other</Button>
相关推荐
Wilber的技术分享11 分钟前
【大模型实战笔记 6】Prompt Engineering 提示词工程
人工智能·笔记·llm·prompt·大语言模型·提示词工程
JJJJ_iii13 分钟前
【机器学习16】连续状态空间、深度Q网络DQN、经验回放、探索与利用
人工智能·笔记·python·机器学习·强化学习
CtrlZ学习录2 小时前
笔记:现代操作系统:原理与实现(8)
linux·笔记·架构·开源
不会聊天真君6472 小时前
Linux命令-文件\文件夹、用户\用户组(Linux基础笔记第二期)
linux·笔记
领创工作室2 小时前
Linux基础指令-Linux学习笔记(1)
linux·笔记·学习
清钟沁桐2 小时前
mlir 编译器学习笔记之五 -- 开发避坑
笔记·学习·mlir
崎岖Qiu2 小时前
【OS笔记25】:页的共享和保护、页式虚拟存储管理
笔记·操作系统·os
咫尺的梦想0072 小时前
vue笔记(第一天)
前端·vue.js·笔记
仰望—星空2 小时前
MiniEngine学习笔记 : RootSignature
windows·笔记·学习
Mark_Hide3 小时前
学习笔记5
笔记·学习