在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