Vue.directive指令实现按钮级别权限控制

简介: 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题库 ,大量面试题免费看

WX搜索 【MST题库】小程序查看

相关文章
Vue3随内容增加滚动到底部
Vue3随内容增加滚动到底部
468 0
|
前端开发 JavaScript API
前端:事件循环/异步
前端开发中的事件循环和异步处理是核心机制,用于管理任务执行、性能优化及响应用户操作,确保网页流畅运行。事件循环负责调度任务,而异步则通过回调、Promise等实现非阻塞操作。
|
编解码 监控 API
直播源怎么调用api接口
调用直播源的API接口涉及开通服务、添加域名、获取API密钥、调用API接口、生成推流和拉流地址、配置直播源、开始直播、监控管理及停止直播等步骤。不同云服务平台的具体操作略有差异,但整体流程简单易懂。
|
前端开发 JavaScript
vite vue3 config配置
【10月更文挑战第5天】
665 0
|
消息中间件 传感器 数据处理
"揭秘实时流式计算:低延迟、高吞吐量的数据处理新纪元,Apache Flink示例带你领略实时数据处理的魅力"
【8月更文挑战第10天】实时流式计算即时处理数据流,低延迟捕获、处理并输出数据,适用于金融分析等需即时响应场景。其框架(如Apache Flink)含数据源、处理逻辑及输出目标三部分。例如,Flink可从数据流读取信息,转换后输出。此技术优势包括低延迟、高吞吐量、强容错性及处理逻辑的灵活性。
472 4
|
移动开发 小程序 前端开发
uniap开发微信小程序如何在线预览pdf文件
这是一段关于在线预览和处理PDF的多方案说明,包括使用JavaScript库PDF.js(如`pdfh5.js`)实现H5页面预览,提供QQ群和技术博客链接以获取帮助和支持。还介绍了两个适用于Uni-app的插件,一个用于H5、小程序和App中的PDF预览和下载,另一个专门解决手机端PDF预览问题。此外,还详细描述了在Uni-app中使用微信小程序API`wx.openDocument`显示PDF的步骤,包括上传文件、配置权限和编写代码。
|
前端开发 JavaScript
Bootstrap 5 保姆级教程(十三):滚动监听 & 侧边栏导航
Bootstrap 5 保姆级教程(十三):滚动监听 & 侧边栏导航
|
网络协议 应用服务中间件 UED
Tomcat的访问日志-localhost_access_log和记录Post请求参数
Tomcat的访问日志-localhost_access_log和记录Post请求参数
|
存储 Java
处理 List、Set、Map 的相互转换问题
处理 List、Set、Map 的相互转换问题
460 0