vue權限自定義指令

vue權限指令

vue項目將后端返回的權限數據存儲到vuex中,并根據不同權限展示不同內容。

directive.js

import Vue from 'vue';

Vue.directive('rule', {
    //在綁定元素插入父元素生命周期觸發(fā)
    inserted: function (el, bind, vnode) {
        //自定義指令中無法使用this獲取vue實例,但是vnode綁定在實例上下文,所以使用vnode.context可以解決這個問題。
        let rule = vnode.context.$store.state.rule;
        //bind.vlaue獲取到你使用該自定義指令綁定的值
        if (!rule.includes(bind.value)) el.remove();
    }
});

main.js

//單獨文件中自定義全局指令必須在main.js中引用
import './utils/directive'

menu.vue

<template>
    <ul>
    <li v-for="(item,index) in rules" v-rule="item" :v-key="index">
      {{item}}
    </li>
  </ul>
</template>
<script>
export default {
  data: () => ({
    rules: ["index", "app", "pc"]
  }),
};
</script>

參考文獻:https://mp.weixin.qq.com/s/McsEsb7rGVy6IOTfWM0gRg

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容