Vue 2 中推荐通过自定义指令 v-permission 实现按钮级权限控制,统一在 inserted 钩子中比对 Vuex 中的权限列表与指令值,无权限时移除 DOM 元素,并在 main.js 全局注册后于模板中以数组或字符串形式声明使用。
Vue 2 中实现按钮级权限控制,最常用且推荐的方式是通过自定义指令 v-permission。它不依赖每个组件重复写 v-if,而是把权限判断逻辑收口到指令内部,统一处理 DOM 显示/移除,既简洁又利于维护。
在 src/directives/permission.js 中定义指令:
inserted 钩子(Vue 2 对应 mounted),确保元素已挂载到 DOMstore.getters.permissions)获取当前用户拥有的全部权限标识(例如 ['sys:user:add', 'sys:user:delete'])v-permission="['sys:user:add']")是否被包含el.parentNode && el.parentNode.removeChild(el)
在 main.js 中注册:
import permission from './directives/permission'
Vue.directive('permission', permission)
new Vue(...) 实例创建在模板里直接使用,支持数组或字符串形式:
<button v-permission="['sys:user:add']">新增用户</button><el-button v-permission="'sys:role:edit'">编辑角色</el-button>some() + includes() 判断指令本身不负责获取权限,依赖前置准备:
state.permissions)并暴露为 getter弹弹星球免费哪个流派好 弹弹星球免费流派推荐有哪些-类型差异和选
tlwdr8661易展版怎么无线桥接(tlwdr8661易展版无线桥接教程)
弹弹星球训练场玩法实用用法 弹弹星球训练关卡讲了什么-主要信息
放置三国福利版兑换码2026有哪些-常见内容和选择思路
普联凌云ax1500怎么设置TpTv(普联凌云ax1500设置TpTv的方法)
弹弹星球开发商是哪个 弹弹星球开发商要点讲了什么-主要信息和内容