vue2 按钮级别 根据权限是否隐藏的自定义指令

194 阅读1分钟

在main.js中

v-if是将当前元素转成注释

Vue.directive("permission", (el, binding, vnode, oldVnode) => {
  // 注释
  const comment = document.createComment(" ");
  Object.defineProperty(comment, "setAttribute", {
    value: () => undefined
  });
  if([条件]){
       vnode.elm = comment
      // 初始化虚拟节点数据
      vnode.text = undefined
      vnode.tag = undefined
      // vnode.context = undefined
      vnode.data.directive = undefined
      if (vnode.componentInstance) {
        vnode.componentInstance.$el = comment;
      }
      if (el.parentNode) {
        el.parentNode.replaceChild(comment, el);
      }
  }
});

使用 v-permission