天天学习一个vue知识点呀html
涉及到知识点:vue
一个指令定义对象能够提供以下几个钩子函数 (均为可选):node
(el,binding,vnode,oldVnode)express
import { check } from "../utils/auth";
// 开发插件的方式;定义指令;第一个参数是Vue 构造器,第二个参数是可选的选项对象
function install(Vue, options = {}) {
Vue.directive(options.name || "auth", {
// 指令定义对象的钩子函数inserted
inserted(el, binding) {
if (!check(binding.value)) {
el.parentNode && el.parentNode.removeChild(el);
}
}
});
}
export default { install };
复制代码
const currentAuth = ["admin"];
export { currentAuth };
export function getCurrentAuthority() {
return currentAuth;
}
export function check(authority) {
const current = getCurrentAuthority();
return current.some(item => authority.includes(item));
}
export function isLogin() {
const current = getCurrentAuthority();
return current && current[0] !== "guest";
}
复制代码
//main.js
//经过全局方法 Vue.use() 使用插件。它须要在你调用 new Vue() 启动应用以前完成:
import Auth from "./directives/auth";
Vue.use(Auth);
复制代码
<a-icon
v-auth="['admin']"
class="trigger"
:type="collapsed ? 'menu-unfold' : 'menu-fold'"
@click="collapsed = !collapsed"
></a-icon>
复制代码
参考官网ide