Vue 指令实现按钮级别权限管理功能


Posted in Javascript onApril 23, 2019

在项目中经常有需求要根据用户的权限对界面上的元素进行控制,这里介绍了一直简单的实现,仅供参考。

当前用户的权限列表储存在 store 里,也可以是其他地方。

指令

// src/directives/permission.js
import Vue from 'vue';
import store from '@/store';
import {get} from '@/utils';
// 是否有权限
const hasPermission = userPermission => {
  let userPermissionList = Array.isArray(userPermission) ? userPermission : [userPermission];
  // 当前用户的权限列表
  let permissionList = get(store, 'getters["user/permission"]', []);
  return userPermissionList.some(e => permissionList.includes(e));
};
// 指令
Vue.directive('per', {
  bind: (el, binding, vnode) => {
    if (!hasPermission(binding.value)) {
      el.parentNode.removeChild(el);
    }
  }
});
// 全局判断方法
Vue.prototype.$_has = hasPermission;

使用方法

在 mian.js 引入

<div v-per="[admin]">
  admin 可见
  是否为admin:{{$_has('admin')}}  //true
<div>

总结

以上所述是小编给大家介绍的Vue 指令实现按钮级别权限管理功能,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Javascript 相关文章推荐
document.designMode的功能与使用方法介绍
Nov 22 Javascript
jQuery实现默认是闭合的FAQ展开效果菜单
Sep 14 Javascript
JS hashMap实例详解
May 26 Javascript
Vue中fragment.js使用方法详解
Mar 09 Javascript
详解ES6之async+await 同步/异步方案
Sep 19 Javascript
vue用Object.defineProperty手写一个简单的双向绑定的示例
Jul 09 Javascript
json数据传到前台并解析展示成列表的方法
Aug 06 Javascript
vue项目中使用Svg的方法
Oct 24 Javascript
详解一个小实例理解js原型和继承
Apr 24 Javascript
浅谈JS中几种轻松处理'this'指向方式
Sep 16 Javascript
VueCli4项目配置反向代理proxy的方法步骤
May 17 Javascript
vue 保留两位小数 不能直接用toFixed(2) 的解决
Aug 07 Javascript
Vue 之孙组件向爷组件通信的实现
Apr 23 #Javascript
Vue infinite update loop的问题解决
Apr 23 #Javascript
详解JavaScript 新语法之Class 的私有属性与私有方法
Apr 23 #Javascript
仿ElementUI实现一个Form表单的实现代码
Apr 23 #Javascript
Vue在 Nuxt.js 中重定向 404 页面的方法
Apr 23 #Javascript
vue项目首屏加载时间优化实战
Apr 23 #Javascript
灵活使用console让js调试更简单的方法步骤
Apr 23 #Javascript
You might like
第一个无线电台是由谁发明的
2021/03/01 无线电
彻底删除thinkphp3.1案例blog标签的方法
2014/12/05 PHP
SSO单点登录的PHP实现方法(Laravel框架)
2016/03/23 PHP
通过修改Laravel Auth使用salt和password进行认证用户详解
2017/08/17 PHP
thinkPHP框架动态配置用法实例分析
2018/06/14 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
js三种排序算法分享
2012/08/16 Javascript
博客侧边栏模块跟随滚动条滑动固定效果的实现方法(js+jquery等)
2013/03/24 Javascript
jQuery的live()方法对hover事件的处理示例
2014/02/27 Javascript
JSONP之我见
2015/03/24 Javascript
jQuery+css实现的换页标签栏效果
2016/01/27 Javascript
jquery自适应布局的简单实例
2016/05/28 Javascript
json2.js 入门教程之使用方法与实例分析
2017/09/14 Javascript
jquery animate动画持续运动的实例
2017/11/29 jQuery
Node.js创建Web、TCP服务器
2017/12/05 Javascript
Vue父子传递实例讲解
2020/02/14 Javascript
javascript 易错知识点实例小结
2020/04/25 Javascript
Windows系统下安装Python的SSH模块教程
2015/02/05 Python
Python读取Excel的方法实例分析
2015/07/11 Python
fastcgi文件读取漏洞之python扫描脚本
2017/04/23 Python
python 网络编程详解及简单实例
2017/04/25 Python
通过源码分析Python中的切片赋值
2017/05/08 Python
django 解决manage.py migrate无效的问题
2018/05/27 Python
python实现对任意大小图片均匀切割的示例
2018/12/05 Python
python:接口间数据传递与调用方法
2018/12/17 Python
Python开发之基于模板匹配的信用卡数字识别功能
2020/01/13 Python
Python如何使用队列方式实现多线程爬虫
2020/05/12 Python
Ubuntu 20.04安装Pycharm2020.2及锁定到任务栏的问题(小白级操作)
2020/10/29 Python
java关于string最常出现的面试题整理
2021/01/18 Python
社团活动策划书范文
2014/01/09 职场文书
住房租房协议书
2014/08/20 职场文书
放飞理想演讲稿
2014/09/09 职场文书
个人整改方案范文
2014/10/25 职场文书
小班教师个人总结
2015/02/05 职场文书
三八红旗手主要事迹材料
2015/11/04 职场文书
什么是检讨书?检讨书的格式及范文
2019/11/05 职场文书