vue中按钮级别的权限控制

可通过在自定义指令对象的钩子函数中实现
1.首先见一个.js文件,如图我建的has.js
在这里插入图片描述

export default{
//一个指令定义对象可以提供如的钩子函数、
    inserted(el,bindings,vnode){
        let boolean = bindings.value;
        //若值为fale,则移除元素
         !boolean &&el.parentNode.removeChild(el); 
    }
}

在这里插入图片描述
2.在store中存储控制按钮的数据

export default {
    namespaced: true, // 开启命名空间
    state: {
      buttonPermission:{
          edit:true,
          add:true,
          del:false,
      }
    },
   
  };

3.页面展示

<tempalye>
 <h1>按钮级别的权限控制</h1>
  <button v-has='buttonPermission.edit' >编辑</button>
    <button v-has='buttonPermission.add'  >新增</button>
    <button v-has='buttonPermission.del'>删除</button>
  </template>

import has from '../directive/has.js'
import {mapState} from 'vuex'
// 自定义一个has指令
 directives:{has},
  computed:{
    ...mapState("btn", ['buttonPermission']),
 },

效果如下:
在这里插入图片描述

修改权限制
export default {
    namespaced: true, // 开启命名空间
    state: {
      buttonPermission:{
          edit:true,
          add:true,
          del:true,
      }
    },
   
  };

效果如下:
在这里插入图片描述

关于自定义指令可查看:
vue官网

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值