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 相关文章推荐
JS 自动完成 AutoComplete(Ajax 查询)
Jul 07 Javascript
Javascript调用C#代码
Jan 17 Javascript
jQuery ready函数滥用分析
Feb 16 Javascript
js document.write()使用介绍
Feb 21 Javascript
JavaScript通过join函数连接数组里所有元素的方法
Mar 20 Javascript
JQuery的常用选择器、过滤器、方法全面介绍
May 25 Javascript
webpack学习笔记之优化缓存、合并、懒加载
Aug 24 Javascript
利用npm 安装删除模块的方法
May 15 Javascript
解决百度Echarts图表坐标轴越界的方法
Oct 17 Javascript
vue-router的钩子函数用法实例分析
Oct 26 Javascript
vue中使用极验验证码的方法(附demo)
Dec 04 Javascript
微信小程序转化为uni-app项目的方法示例
May 22 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
基于PHP CURL获取邮箱地址的详解
2013/06/03 PHP
PHP Session机制简介及用法
2014/08/19 PHP
Laravel框架模板继承操作示例
2018/06/11 PHP
javascript 禁止复制网页
2009/06/11 Javascript
js创建元素(节点)示例
2014/01/02 Javascript
js对文章内容进行分页示例代码
2014/03/05 Javascript
js函数模拟显示桌面.scf程序示例
2014/04/20 Javascript
js函数参数设置默认值的一种变通实现方法
2014/05/26 Javascript
javaScript数组迭代方法详解
2016/04/14 Javascript
jQuery遍历DOM元素与节点方法详解
2016/04/14 Javascript
vue.js指令v-model实现方法
2016/12/05 Javascript
JavaScript中数组的各种操作的总结(必看篇)
2017/02/13 Javascript
jQuery常见面试题之DOM操作详析
2017/07/05 jQuery
vue1.0和vue2.0的watch监听事件写法详解
2018/09/11 Javascript
记一次vue去除#问题处理经过小结
2019/01/24 Javascript
深入解析koa之中间件流程控制
2019/06/17 Javascript
使用Vue-Awesome-Swiper实现旋转叠加轮播效果&amp;平移轮播效果
2019/08/16 Javascript
JavaScript实现英语单词题库
2019/12/24 Javascript
Electron 打包问题:electron-builder 下载各种依赖出错(推荐)
2020/07/09 Javascript
Vue-cli打包后如何本地查看的操作
2020/09/02 Javascript
如何搭建一个完整的Vue3.0+ts的项目步骤
2020/10/18 Javascript
Python学生成绩管理系统简洁版
2020/04/05 Python
详解python之协程gevent模块
2018/06/14 Python
python环形单链表的约瑟夫问题详解
2018/09/27 Python
为什么str(float)在Python 3中比Python 2返回更多的数字
2018/10/16 Python
python matplotlib画图库学习绘制常用的图
2019/03/19 Python
网易有道2017内推编程题 洗牌(python)
2019/06/19 Python
python安装scipy的步骤解析
2019/09/28 Python
python 计算概率密度、累计分布、逆函数的例子
2020/02/25 Python
python GUI库图形界面开发之PyQt5信号与槽多窗口数据传递详细使用方法与实例
2020/03/08 Python
浅析Python requests 模块
2020/10/09 Python
HTML5 对各个标签的定义与规定:body的介绍
2012/06/21 HTML / CSS
Bally美国官网:经典瑞士鞋履、手袋及配饰奢侈品牌
2018/05/18 全球购物
应届生煤化工求职信
2013/10/21 职场文书
企业安全生产规章制度
2015/08/06 职场文书
检讨书范文
2019/04/16 职场文书