天天學習一個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