Vue中按钮的权限控制

利用自定义指令与vuex来实现

首先,在src目录下的view文件夹中创建index.vue、然后创建directives文件夹,在其中新建has.js,创建store.js。

store.js:

设置state中的状态。

import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    buttonPermission:{
      add:true,
      edit:false,
      delete:false
    }
  }
})

has.js:

获取state中的状态,如果为false就移除当前节点。

export default{
    inserted(el, bindings, vnode){
        let btnPermissionValue = bindings.value
        let boolean = vnode.context.$store.state.buttonPermission[btnPermissionValue]
        !boolean && el.parentNode.removeChild(el)
    }
}

index.vue:

引入自定义指令文件,在directives中挂载自定义指令has,并在标签中写入。

<template>
    <div>
        <button v-has="'add'">增加</button>
        <button v-has="'edit'">修改</button>
        <button v-has="'delete'">删除</button>
    </div>
</template>

<script>
import has from '../directives/has.js'   
export default {
    components: {
    },
    directives:{
        has
    }
};
</script>

<style scoped>
</style>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值