vue 按鈕 權限控制介紹
前言:
在日常項目中,會碰到需要根據后臺接口返回的數據,來判斷當前用戶的操作權限。必須當有刪除權限時,就顯示刪除按鈕。沒有這個權限時,就不顯示或者刪除這個按鈕。通過查找資料,通過vuex來實現(xiàn)這個功能。
一、步驟
1.定義buttom權限
在state中創(chuàng)建buttomPermission,用于保存后臺接口返回的權限數據。
setPermission用于接受數據,將頁面權限管理傳入到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函數,在被綁定元素插入父節(jié)點時檢測該元素是否有權限。
inserted( el, bindings, vnode ) { }
4.使用permission指令
在按鈕頁面引入和定義 permission指令,并且在buttom中寫入指令,綁定指令中相對于的值。
<button v-permission="'add'">添加</button>
import permission from './directives/permission'
directives: {permission,},
5.刪除無權限數據
在permission指令,通過bindings獲取該按鈕綁定的value值,然后在buttomPermission對象中找到,然后判斷是否有權限,如果沒有權限,則刪除該節(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)管理數據
將狀態(tài)管理數據,通過setPermission方法傳入到權限管理中
let permissions = {}
this.$store.commit("setPermission", permissions);
二、概況
總的來說,就是通過vuex定義一個buttomPermission權限狀態(tài)對象,然后再創(chuàng)建一個permissions指令,通過對每個buttom按鈕使用permissions指令,并且綁定該按鈕特定意義的值。然后在permission.js文件中,獲取當前value值,從buttomPermission中得到當前按鈕是否有權限,沒有則直接刪除掉當前按鈕節(jié)點。
到此這篇關于vue 按鈕 權限控制介紹的文章就介紹到這了,更多相關vue 按鈕 權限控制內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Vue項目中數據的深度監(jiān)聽或對象屬性的監(jiān)聽實例
這篇文章主要介紹了Vue項目中數據的深度監(jiān)聽或對象屬性的監(jiān)聽實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07
vue3使用Element-plus的el-pagination分頁組件時無法顯示中文
本文主要介紹了vue3使用Element-plus的el-pagination分頁組件時無法顯示中文,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-12-12
基于Vue2-Calendar改進的日歷組件(含中文使用說明)
這篇文章主要介紹了基于Vue2-Calendar改進的日歷組件(含中文使用說明)的相關知識,非常不錯,具有一定的參考借鑒價值 ,需要的朋友可以參考下2019-04-04

