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题库】小程序查看

相关文章
|
3月前
|
存储 前端开发 数据安全/隐私保护
vue3用户权限管理(路由控制等)1
在前端开发的过程中,我们需要做前端的权限管理,我们需要根据后端提供的信息来控制权限,这时候就需要根据用户的操作来进行权限控制了。逻辑稍微有一点绕,多理解就好了。
178 0
|
2月前
|
JavaScript 网络架构
vue3 Elementplus 动态路由菜单不跳转问题
vue3 Elementplus 动态路由菜单不跳转问题
101 1
|
1月前
|
JavaScript 数据安全/隐私保护
vue 页面权限控制、按钮权限控制
vue 页面权限控制、按钮权限控制
16 0
|
3月前
|
缓存 JavaScript 前端开发
Vue 组件强制刷新方式
Vue 组件强制刷新方式
|
3月前
|
JavaScript
组件中写选项的顺序(vue的问题)
组件中写选项的顺序(vue的问题)
20 0
|
9月前
|
小程序 JavaScript
小程序 observers--组件访问页面钩子
小程序 observers--组件访问页面钩子
211 1
|
10月前
|
人工智能 自然语言处理 JavaScript
vue项目进入一个页面自动触发某元素的点击事件——自定义指令directives
vue项目进入一个页面自动触发某元素的点击事件——自定义指令directives
123 0
|
存储 JavaScript
|
JavaScript 数据安全/隐私保护
vue实现按钮功能级权限控制
vue实现按钮功能级权限控制
350 0
vue实现按钮功能级权限控制
|
JavaScript 前端开发 安全
Vue(三)——过滤器,内置指令,自定义指令,组件
过滤器 🔮定义: 对要显示的数据进行特定格式化后再显示(适用于一些简单逻辑的处理) 过滤器可以用在两个地方:双花括号插值 或 v-bind表达式。 1.16.1. 局部过滤器 局部过滤器是在某一个vue实例的内容创建的,只在当前实例中起作用
99 0
Vue(三)——过滤器,内置指令,自定义指令,组件