vue 按鈕 權(quán)限控制介紹
前言:
在日常項目中,會碰到需要根據(jù)后臺接口返回的數(shù)據(jù),來判斷當(dāng)前用戶的操作權(quán)限。必須當(dāng)有刪除權(quán)限時,就顯示刪除按鈕。沒有這個權(quán)限時,就不顯示或者刪除這個按鈕。通過查找資料,通過vuex來實現(xiàn)這個功能。
一、步驟
1.定義buttom權(quán)限
在state
中創(chuàng)建buttomPermission
,用于保存后臺接口返回的權(quán)限數(shù)據(jù)。
setPermission
用于接受數(shù)據(jù),將頁面權(quán)限管理傳入到buttomPermission
對象中。
使用vuex:
Vue.use(Vuex) 創(chuàng)建vue實例 const store = new Vuex.Store({ state: { buttomPermission: {} }, mutations: { setPermission(state, permission) { state.buttomPermission = permission } } }) export default store
2.定義store
import store from './store/index.js' new Vue({ store, el: '#app', render: h => h(App) })
3.創(chuàng)建permission指令
新建directives
文件夾,創(chuàng)建permission.js
文件。
這里使用inserted
函數(shù),在被綁定元素插入父節(jié)點時檢測該元素是否有權(quán)限。
inserted( el, bindings, vnode ) { }
4.使用permission指令
在按鈕頁面引入和定義 permission
指令,并且在buttom
中寫入指令,綁定指令中相對于的值。
<button v-permission="'add'">添加</button> import permission from './directives/permission' directives: {permission,},
5.刪除無權(quán)限數(shù)據(jù)
在permission
指令,通過bindings
獲取該按鈕綁定的value
值,然后在buttomPermission
對象中找到,然后判斷是否有權(quán)限,如果沒有權(quán)限,則刪除該節(jié)點。
inserted(el, bindings, vnode) { let btnPermissionValue = bindings.value; let boolean =vnode.context.$store.state.buttomPermission[btnPermissionValue]; !boolean && el.parentNode.removeChild(el); }
6.傳入狀態(tài)管理數(shù)據(jù)
將狀態(tài)管理數(shù)據(jù),通過setPermission
方法傳入到權(quán)限管理中
let permissions = {} this.$store.commit("setPermission", permissions);
二、概況
總的來說,就是通過vuex
定義一個buttomPermission
權(quán)限狀態(tài)對象,然后再創(chuàng)建一個permissions
指令,通過對每個buttom
按鈕使用permissions
指令,并且綁定該按鈕特定意義的值。然后在permission.js
文件中,獲取當(dāng)前value值,從buttomPermission
中得到當(dāng)前按鈕是否有權(quán)限,沒有則直接刪除掉當(dāng)前按鈕節(jié)點。
到此這篇關(guān)于vue 按鈕 權(quán)限控制介紹的文章就介紹到這了,更多相關(guān)vue 按鈕 權(quán)限控制內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue2.5學(xué)習(xí)筆記之如何在項目中使用和配置Vue
這篇文章主要介紹了Vue2.5學(xué)習(xí)筆記之如何在項目中使用和配置Vue的相關(guān)知識,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2018-09-09vue+element表格實現(xiàn)多層數(shù)據(jù)的嵌套方式
這篇文章主要介紹了vue+element表格實現(xiàn)多層數(shù)據(jù)的嵌套方式,具有很好的參考價值。希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09Vue源碼學(xué)習(xí)defineProperty響應(yīng)式數(shù)據(jù)原理實現(xiàn)
這篇文章主要為大家介紹了Vue源碼學(xué)習(xí)defineProperty響應(yīng)式數(shù)據(jù)原理實現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09vue3.0父子傳參,子修改父數(shù)據(jù)的實現(xiàn)
這篇文章主要介紹了vue3.0父子傳參,子修改父數(shù)據(jù)的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-04-04