詳解vue + vuex + directives實現許可權按鈕的思路,vuexdirectives

來源:互聯網
上載者:User

詳解vue + vuex + directives實現許可權按鈕的思路,vuexdirectives

遇到了一個業務情境:

某個按鈕按下去之前需要先判斷它是否登陸,如果沒有登陸需要跳轉到對應的登陸頁面,否則就繼續該按鈕之後的操作。

對於這種問題,很顯然不能每個按鈕都去判斷,所以我思考了一下結合自訂指令和vuex完成了相應的實現。

主要的代碼實現

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()   }  }) }})

這裡封裝了一個自訂指令,添加了一個點擊事件,對於已經登陸的則調用傳進來的函數,否則通過vuex去控制登陸(此處的登陸是通過彈窗實現的)

自訂群組件使用的時候也極為簡單

<div class="" v-permission-click="doSomething"> ...</div>

vuex裡面的showLogin這個action無非就是對login的顯示隱藏flag的操作。

這裡只是完成了簡單的登陸許可權控制,從登陸許可權出發,可以加入更多的許可權控制,比如根據role角色判斷,然後可以全域地控制許可權,且實現起來極為精簡。

Github: github.com/lyh2668

以上就是本文的全部內容,希望對大家的學習有所協助,也希望大家多多支援幫客之家。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.