自定义指令按钮权限

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>
相关推荐
nnsix11 小时前
设计模式 - 模板方法模式 笔记
笔记·设计模式·模板方法模式
RainCity13 小时前
Java Swing 自定义组件库分享(六)
java·笔记·后端
羊群智妍13 小时前
2026 AI搜索优化:企业级GEO监测工具选型手册
笔记
x_yeyue15 小时前
2026第十七届蓝桥杯c++B组省赛题解
笔记·算法·蓝桥杯·acm·题解
一马平川的大草原16 小时前
报告笔记--AI工程的文化研读记录及感悟
人工智能·笔记·读书笔记
Hammer_Hans16 小时前
DFT笔记50
笔记
二哈赛车手16 小时前
新人笔记---简易版AI实现以图搜图功能
java·人工智能·笔记·spring·ai
西洼工作室17 小时前
UniApp云开发笔记
前端·笔记·uni-app
xian_wwq17 小时前
【学习笔记】探讨大模型应用安全建设系列2——安全评估:攻击面梳理与差距分析
笔记·学习·安全
ljt272496066117 小时前
Vue笔记(三)--用户交互
javascript·vue.js·笔记