欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue項(xiàng)目實(shí)現(xiàn)簡單的權(quán)限控制管理功能

 更新時間:2019年07月17日 08:40:04   作者:coderAfei  
這篇文章主要介紹了Vue項(xiàng)目實(shí)現(xiàn)簡單的權(quán)限控制功能,文中給大家介紹了兩種方式進(jìn)行權(quán)限限制,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下

在Vue項(xiàng)目中實(shí)現(xiàn)權(quán)限控制管理

對于一般稍大一些的后臺管理系統(tǒng),往往有很多個人員需要使用,而不同的人員也對應(yīng)了不同的權(quán)限系統(tǒng),后端的權(quán)限校驗(yàn)保障了系統(tǒng)的安全性,而前端的權(quán)限校驗(yàn)則提供了優(yōu)秀的交互體驗(yàn)。

校驗(yàn)方式

前端對用戶的權(quán)限信息進(jìn)行校驗(yàn)往往在兩個方面進(jìn)行限制

  • 路由不可見
  • 元素不可見

通過以上兩個方式,來將用戶權(quán)限之外的內(nèi)容隱藏掉。

路由不可見實(shí)現(xiàn)方法

在router.js中的meta字段中加入該路由的訪問權(quán)限列表

{
  path: 'edit',
  name: 'edit',
  meta: {
    title: '編輯賬戶',
    auths:['edit_account']
  },
  component: () => import('pathToComponent/component.vue'),
},

Vue.router中提供了導(dǎo)航守衛(wèi),我們這里使用 全局前置守衛(wèi) 對路由跳轉(zhuǎn)進(jìn)行權(quán)限校驗(yàn)

router.beforeEach(to,from,next)

參數(shù) to 是即將進(jìn)入的路由對象,我們可以在對象中拿到之前在router.js中定義的 route 對象,并獲得 auths 字段

router.beforeEach((to,from,next)=>{
  const hasAuth = function(needAuths,haveAuths){   //判斷用戶是否擁有權(quán)限的function
    // implement 
  }
  const havaAuths = []; // 用戶擁有的權(quán)限列表
  if(!hasAuth(to.meta.auths,haveAuths)){
    //沒有權(quán)限重定位到其他頁面,往往是401頁面
    next({replace:true,name:'otherRouteName'})
  }
  //權(quán)限校驗(yàn)通過,跳轉(zhuǎn)至對應(yīng)路由
  next();
})

在有側(cè)邊欄的后臺管理中,還需要對側(cè)邊欄的路由導(dǎo)航進(jìn)行隱藏,這里同樣是通過拿到 route.meta.auths 字段進(jìn)行過濾。

元素不可見實(shí)現(xiàn)方法

因?yàn)槟承╉撁嬷袝幸恍┨厥獾慕涌谡{(diào)用或數(shù)據(jù)展示受到權(quán)限控制顯示。前端通過控制元素的展示來隱藏掉用戶不具有權(quán)限的元素,避免點(diǎn)擊了某一個button導(dǎo)致接口401報錯這樣不友好的交互體驗(yàn)。

全局注冊一個directive, directive官網(wǎng)介紹 。

//acl.js
const aclDirective = {
  inserted:function(el,binding){ // 在被綁定的元素插入到dom中時
    const hasAuth = function(needAuths,haveAuths){ //判斷用戶是否擁有權(quán)限的function
      // implement 
    }
    const havaAuths = []; // 用戶擁有的權(quán)限列表
    if(!hasAuth(binding.value,haveAuths)){ //binding.value 可以獲得綁定指令時傳入的參數(shù)
      el.style = "display:none"; //修改元素的可見狀態(tài)
    }
  }
}
//main.js
Vue.directive('acl',aclDirective); //全局注冊指令

在需要控制顯示的組件上我們就可以通過 v-acl 進(jìn)行權(quán)限控制

<button v-acl="['edit_access']">編輯賬戶</button>

總結(jié)

以上所述是小編給大家介紹的Vue項(xiàng)目實(shí)現(xiàn)簡單的權(quán)限控制管理功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

相關(guān)文章

  • vue優(yōu)化之優(yōu)雅的拋出錯誤(Error)問題

    vue優(yōu)化之優(yōu)雅的拋出錯誤(Error)問題

    這篇文章主要介紹了vue優(yōu)化之優(yōu)雅的拋出錯誤(Error)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Vue.js原理分析之observer模塊詳解

    Vue.js原理分析之observer模塊詳解

    這篇文章主要介紹了Vue.js中observer模塊的相關(guān)資料,文中通過原理分析介紹還是相對的詳細(xì),相信對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。
    2017-02-02
  • 基于elementUI使用v-model實(shí)現(xiàn)經(jīng)緯度輸入的vue組件

    基于elementUI使用v-model實(shí)現(xiàn)經(jīng)緯度輸入的vue組件

    這篇文章主要介紹了基于elementUI使用v-model實(shí)現(xiàn)經(jīng)緯度輸入的vue組件,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-05-05
  • vue中的el-tree @node-click傳自定義參數(shù)

    vue中的el-tree @node-click傳自定義參數(shù)

    這篇文章主要介紹了vue中的el-tree @node-click傳自定義參數(shù)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • vue樹形控件tree的使用方法

    vue樹形控件tree的使用方法

    這篇文章主要為大家詳細(xì)介紹了vue樹形控件tree的使用方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 詳解如何使用Object.defineProperty實(shí)現(xiàn)簡易的vue功能

    詳解如何使用Object.defineProperty實(shí)現(xiàn)簡易的vue功能

    這篇文章主要為大家介紹了如何使用Object.defineProperty實(shí)現(xiàn)簡易的vue功能示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • vue2之響應(yīng)式雙向綁定,在對象或數(shù)組新增屬性頁面無響應(yīng)的情況

    vue2之響應(yīng)式雙向綁定,在對象或數(shù)組新增屬性頁面無響應(yīng)的情況

    這篇文章主要介紹了vue2之響應(yīng)式雙向綁定,在對象或數(shù)組新增屬性頁面無響應(yīng)的情況及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Vue3+TypeScript封裝axios并進(jìn)行請求調(diào)用的實(shí)現(xiàn)

    Vue3+TypeScript封裝axios并進(jìn)行請求調(diào)用的實(shí)現(xiàn)

    這篇文章主要介紹了Vue3+TypeScript封裝axios并進(jìn)行請求調(diào)用的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Vue混入mixins分發(fā)組件可復(fù)用功能

    Vue混入mixins分發(fā)組件可復(fù)用功能

    混入 (mixin) 提供了一種非常靈活的方式,來分發(fā) Vue 組件中的可復(fù)用功能。一個混入對象可以包含任意組件選項(xiàng)。當(dāng)組件使用混入對象時,所有混入對象的選項(xiàng)將被“混合”進(jìn)入該組件本身的選項(xiàng)
    2022-09-09
  • vue如何實(shí)現(xiàn)動態(tài)加載腳本

    vue如何實(shí)現(xiàn)動態(tài)加載腳本

    這篇文章主要介紹了vue如何實(shí)現(xiàn)動態(tài)加載腳本,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-02-02

最新評論