vue通过自定义指令控制按钮的权限

1、store/index.js:

复制代码
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
  state: {
    buttonPermission: {
      add: true,
      edit: true,
      delete: false
    }
  }
})
复制代码

2、directives/has.js:

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

3、使用指令

复制代码
<template>
  <div id="app">
    <button v-has="'add'">添加</button>
    <button v-has="'edit'">编辑</button>
    <button v-has="'delete'">删除</button>
  </div>
</template>
<script>
import has from '@/directives/has'
export default {
  directives:{has}
}
</script>
复制代码

  将按钮的英文传入到指令中,在指令的回调中将该按钮在vuex中的状态(true/false)找到,如果是false,通过父级节点将该节点删除

 

posted @   吴小明-  阅读(327)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结
点击右上角即可分享
微信分享提示