自定义指令按钮权限

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>
相关推荐
一口吃俩胖子12 分钟前
【脉宽调制DCDC功率变换学习笔记024】电压反馈补偿和环路增益
笔记·学习·算法
San813_LDD32 分钟前
[深度学习]量化研究_ML_Lesson3
笔记
San813_LDD1 小时前
[深度学习]量化研究_ML_Lesson1
笔记
是上好佳佳佳呀2 小时前
【LangChain|Day02】LangChain Prompt 提示词工程笔记
笔记·langchain·prompt
十月的皮皮2 小时前
C语言学习笔记20260611-水仙花数(2种解法)
c语言·笔记·学习
Alphapeople2 小时前
策略学习笔记
笔记·学习
Cloud_Shy6182 小时前
解读《Effective Python 3rd Edition》:从练气到老魔(第五章 Item 36 - 39)
开发语言·人工智能·笔记·python
星恒随风2 小时前
C++ 类和对象入门(六):友元、内部类、匿名对象和编译器优化
开发语言·c++·笔记·学习·状态模式
结城明日奈是我老婆2 小时前
stm32的TIM和PWM学习笔记
笔记·stm32·学习
上海观智网络2 小时前
健身房瑜伽馆想开发小程序,上海靠谱服务商怎么选?
经验分享·笔记