最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解vue + vuex + directives實(shí)現(xiàn)權(quán)限按鈕的思路

 更新時(shí)間:2017年10月24日 16:49:10   作者:lyh2668  
這篇文章主要介紹了詳解vue + vuex + directives實(shí)現(xiàn)權(quán)限按鈕的思路,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

遇到了一個(gè)業(yè)務(wù)場(chǎng)景:

某個(gè)按鈕按下去之前需要先判斷它是否登陸,如果沒有登陸需要跳轉(zhuǎn)到對(duì)應(yīng)的登陸頁面,否則就繼續(xù)該按鈕之后的操作。

對(duì)于這種問題,很顯然不能每個(gè)按鈕都去判斷,所以我思考了一下結(jié)合自定義指令和vuex完成了相應(yīng)的實(shí)現(xiàn)。

主要的代碼實(shí)現(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()
   }
  })
 }
})

這里封裝了一個(gè)自定義指令,添加了一個(gè)點(diǎn)擊事件,對(duì)于已經(jīng)登陸的則調(diào)用傳進(jìn)來的函數(shù),否則通過vuex去控制登陸(此處的登陸是通過彈窗實(shí)現(xiàn)的)

自定義組件使用的時(shí)候也極為簡(jiǎn)單

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

vuex里面的showLogin這個(gè)action無非就是對(duì)login的顯示隱藏flag的操作。

這里只是完成了簡(jiǎn)單的登陸權(quán)限控制,從登陸權(quán)限出發(fā),可以加入更多的權(quán)限控制,比如根據(jù)role角色判斷,然后可以全局地控制權(quán)限,且實(shí)現(xiàn)起來極為精簡(jiǎn)。

Github: github.com/lyh2668

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue3中ref和reactive的區(qū)別及說明

    Vue3中ref和reactive的區(qū)別及說明

    在Vue3中,ref主要用于基本數(shù)據(jù)類型和單個(gè)數(shù)據(jù)管理,需要用.value訪問,reactive適用于對(duì)象和多數(shù)據(jù)管理,直接訪問屬性,ref支持解構(gòu)保持響應(yīng)性,reactive解構(gòu)后失去響應(yīng)性,選擇合適的方法可以使代碼更優(yōu)化
    2024-11-11
  • Vue3中使用setup通過ref獲取子組件的屬性

    Vue3中使用setup通過ref獲取子組件的屬性

    這篇文章主要介紹了Vue3中使用setup通過ref獲取子組件的屬性,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • vue?批量自動(dòng)引入并注冊(cè)組件或路由實(shí)現(xiàn)詳解

    vue?批量自動(dòng)引入并注冊(cè)組件或路由實(shí)現(xiàn)詳解

    這篇文章主要為大家介紹了vue?批量自動(dòng)引入并注冊(cè)組件或路由實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • element-ui 文件上傳修改文件名的方法示例

    element-ui 文件上傳修改文件名的方法示例

    這篇文章主要介紹了element-ui 文件上傳修改文件名的方法示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • vue實(shí)現(xiàn)右鍵菜單欄

    vue實(shí)現(xiàn)右鍵菜單欄

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)右鍵菜單欄,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • 在vue3.0中封裝button使用slot組件

    在vue3.0中封裝button使用slot組件

    這篇文章主要介紹了在vue3.0中封裝button使用slot組件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • 關(guān)于vue3+echart5?遇到的坑?Cannot?read?properties?of?undefined?(reading?'type')

    關(guān)于vue3+echart5?遇到的坑?Cannot?read?properties?of?undefine

    這篇文章主要介紹了vue3+echart5?遇到的坑?Cannot?read?properties?of?undefined?(reading?'type'),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-04-04
  • 淺析Vue中混入mixin的實(shí)現(xiàn)

    淺析Vue中混入mixin的實(shí)現(xiàn)

    混入 (mixin) 提供了一種非常靈活的方式,來分發(fā) Vue 組件中的可復(fù)用功能,下面就跟隨小編一起來了解一下Vue中混入mixin的實(shí)現(xiàn)吧
    2024-11-11
  • Vue生命周期與setup深入詳解

    Vue生命周期與setup深入詳解

    Vue的生命周期就是vue實(shí)例從創(chuàng)建到銷毀的全過程,也就是new Vue() 開始就是vue生命周期的開始。Vue 實(shí)例有?個(gè)完整的?命周期,也就是從開始創(chuàng)建、初始化數(shù)據(jù)、編譯模版、掛載Dom -> 渲染、更新 -> 渲染、卸載 等?系列過程,稱這是Vue的?命周期
    2022-09-09
  • vite.config.ts如何加載.env環(huán)境變量

    vite.config.ts如何加載.env環(huán)境變量

    這篇文章主要介紹了vite.config.ts加載.env環(huán)境變量方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10

最新評(píng)論

尤溪县| 苏尼特右旗| 古浪县| 浦东新区| 安乡县| 牟定县| 和田县| 方山县| 鹤岗市| 南安市| 乐清市| 霸州市| 铁岭市| 庄河市| 永年县| 昌都县| 吉木乃县| 包头市| 大方县| 潜江市| 漠河县| 淅川县| 承德县| 内丘县| 东源县| 宁德市| 仙居县| 滦南县| 上饶市| 大宁县| 京山县| 苗栗市| 明水县| 札达县| 涡阳县| 新龙县| 中阳县| 荆州市| 班戈县| 盖州市| 龙游县|