常常作中後臺系統,此類系統的權限是比較重要,拿本身作過的一些項目作個筆記。前端
Vue實現的中後臺管理系統。按鈕操做權限的空置通常都是經過自定義指令Vue.directive。vue
<el-button v-has="fq-pms" type="primary">按鈕</el-button>
一般咱們會把從後臺請求過來的數據存貯到Vuex或localStorage,接下來咱們先註冊一個全局自定義指令並監控它api
Vue.directive('has',{ bind:function(el,binding){ const permissons = ['lcj'] //指令列表
if (has(binding.value, permissions)) { el.parentNode.removeChild(el);//調用元素父級刪除,有時間父元素爲渲染出來能夠把bind換成inserted } } })
has函數函數
function has(value, permissions) { let isExist = true; if (permissions === undefined||permissions===null || permissions.length === 0) { return true; } for (let i = 0; i < permissions.length; i++) { if (permissions[i] === value) { isExist = false; break; } } return isExist; }
bind是Vue.directive的五個生命週期(鉤子函數),按照生命週期 bind>inserted>update>componentUpdate>unbindspa
通常是經過操做權限是經過按鈕的,菜單權限是經過前端路由和後臺路由來判斷的。下章會介紹Vue-router配置後臺路由實現菜單權限的code