詳解vue + vuex + directives實現(xiàn)權限按鈕的思路
遇到了一個業(yè)務場景:
某個按鈕按下去之前需要先判斷它是否登陸,如果沒有登陸需要跳轉到對應的登陸頁面,否則就繼續(xù)該按鈕之后的操作。
對于這種問題,很顯然不能每個按鈕都去判斷,所以我思考了一下結合自定義指令和vuex完成了相應的實現(xiàn)。
主要的代碼實現(xiàn)
const directive = Vue.directive('permission-click', { bind: (el, binding, vnode) => { el.addEventListener('click', (e) => { if (!store.getters.isLogin) { store.dispatch('showLogin') } else { typeof binding.value === 'function' && binding.value() } }) } })
這里封裝了一個自定義指令,添加了一個點擊事件,對于已經(jīng)登陸的則調(diào)用傳進來的函數(shù),否則通過vuex去控制登陸(此處的登陸是通過彈窗實現(xiàn)的)
自定義組件使用的時候也極為簡單
<div class="" v-permission-click="doSomething"> ... </div>
vuex里面的showLogin這個action無非就是對login的顯示隱藏flag的操作。
這里只是完成了簡單的登陸權限控制,從登陸權限出發(fā),可以加入更多的權限控制,比如根據(jù)role角色判斷,然后可以全局地控制權限,且實現(xiàn)起來極為精簡。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
- Vue3實現(xiàn)全局loading指令的示例詳解
- vue全局注冊自定義指令防抖解析
- vue全局自定義指令和局部自定義指令的使用
- Vue全局自定義指令Modal拖拽的實踐
- vue全局自定義指令-元素拖拽的實現(xiàn)代碼
- vue directive定義全局和局部指令及指令簡寫
- 對Vue2 自定義全局指令Vue.directive和指令的生命周期介紹
- vue3的自定義指令directives實現(xiàn)
- vue 自定義指令directives及其常用鉤子函數(shù)說明
- vue?filters和directives訪問this的問題詳解
- vue通過指令(directives)實現(xiàn)點擊空白處收起下拉框
- vue全局指令文件 directives詳解
相關文章
解決vue admin element noCache設置無效的問題
今天小編就為大家分享一篇解決vue admin element noCache設置無效的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11Ant Design Vue全局對話確認框(confirm)的回調(diào)不觸發(fā)
這篇文章主要介紹了Ant Design Vue全局對話確認框(confirm)的回調(diào)不觸發(fā)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07解決element-ui table設置列fixed時X軸滾動條無法拖動問題
這篇文章主要介紹了解決element-ui table設置列fixed時X軸滾動條無法拖動問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-10-10vue實現(xiàn)el-select 觸底分頁+遠程搜索的示例
有的時候數(shù)據(jù)量比較大,比如幾千甚至上萬條的時候,如果直接賦值,整個頁面的 dom 會被撐爆,本文主要介紹了vue實現(xiàn)el-select 觸底分頁+遠程搜索的示例,具有一定的參考價值,感興趣的可以了解一下2023-12-12