vue 按鈕 權(quán)限控制介紹
前言:
在日常項(xiàng)目中,會(huì)碰到需要根據(jù)后臺(tái)接口返回的數(shù)據(jù),來(lái)判斷當(dāng)前用戶的操作權(quán)限。必須當(dāng)有刪除權(quán)限時(shí),就顯示刪除按鈕。沒(méi)有這個(gè)權(quán)限時(shí),就不顯示或者刪除這個(gè)按鈕。通過(guò)查找資料,通過(guò)vuex來(lái)實(shí)現(xiàn)這個(gè)功能。
一、步驟
1.定義buttom權(quán)限
在state中創(chuàng)建buttomPermission,用于保存后臺(tái)接口返回的權(quán)限數(shù)據(jù)。
setPermission用于接受數(shù)據(jù),將頁(yè)面權(quán)限管理傳入到buttomPermission對(duì)象中。
使用vuex:
Vue.use(Vuex)
創(chuàng)建vue實(shí)例
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é)點(diǎn)時(shí)檢測(cè)該元素是否有權(quán)限。
inserted( el, bindings, vnode ) { }
4.使用permission指令
在按鈕頁(yè)面引入和定義 permission指令,并且在buttom中寫(xiě)入指令,綁定指令中相對(duì)于的值。
<button v-permission="'add'">添加</button>
import permission from './directives/permission'
directives: {permission,},
5.刪除無(wú)權(quán)限數(shù)據(jù)
在permission指令,通過(guò)bindings獲取該按鈕綁定的value值,然后在buttomPermission對(duì)象中找到,然后判斷是否有權(quán)限,如果沒(méi)有權(quán)限,則刪除該節(jié)點(diǎn)。
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ù),通過(guò)setPermission方法傳入到權(quán)限管理中
let permissions = {}
this.$store.commit("setPermission", permissions);
二、概況
總的來(lái)說(shuō),就是通過(guò)vuex定義一個(gè)buttomPermission權(quán)限狀態(tài)對(duì)象,然后再創(chuàng)建一個(gè)permissions指令,通過(guò)對(duì)每個(gè)buttom按鈕使用permissions指令,并且綁定該按鈕特定意義的值。然后在permission.js文件中,獲取當(dāng)前value值,從buttomPermission中得到當(dāng)前按鈕是否有權(quán)限,沒(méi)有則直接刪除掉當(dāng)前按鈕節(jié)點(diǎn)。
到此這篇關(guān)于vue 按鈕 權(quán)限控制介紹的文章就介紹到這了,更多相關(guān)vue 按鈕 權(quán)限控制內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Vue自定義指令實(shí)現(xiàn)按鈕級(jí)的權(quán)限控制的示例代碼
- vue3實(shí)現(xiàn)按鈕權(quán)限管理的項(xiàng)目實(shí)踐
- vue3?自定義指令控制按鈕權(quán)限的操作代碼
- vue實(shí)現(xiàn)前端按鈕組件權(quán)限管理
- vue使用自定義指令來(lái)控制頁(yè)面按鈕組的權(quán)限思想
- vue使用自定義指令實(shí)現(xiàn)按鈕權(quán)限展示功能
- vue路由權(quán)限和按鈕權(quán)限的實(shí)現(xiàn)示例
- Vue實(shí)現(xiàn)按鈕級(jí)權(quán)限方案
- Vue按鈕權(quán)限的實(shí)現(xiàn)示例
相關(guān)文章
vue.js使用代理和使用Nginx來(lái)解決跨域的問(wèn)題
下面小編就為大家分享一篇vue.js使用代理和使用Nginx來(lái)解決跨域的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-02-02
Vue2.5學(xué)習(xí)筆記之如何在項(xiàng)目中使用和配置Vue
這篇文章主要介紹了Vue2.5學(xué)習(xí)筆記之如何在項(xiàng)目中使用和配置Vue的相關(guān)知識(shí),非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-09-09
vue+element表格實(shí)現(xiàn)多層數(shù)據(jù)的嵌套方式
這篇文章主要介紹了vue+element表格實(shí)現(xiàn)多層數(shù)據(jù)的嵌套方式,具有很好的參考價(jià)值。希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09
Vue源碼學(xué)習(xí)defineProperty響應(yīng)式數(shù)據(jù)原理實(shí)現(xiàn)
這篇文章主要為大家介紹了Vue源碼學(xué)習(xí)defineProperty響應(yīng)式數(shù)據(jù)原理實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09
vue3.0父子傳參,子修改父數(shù)據(jù)的實(shí)現(xiàn)
這篇文章主要介紹了vue3.0父子傳參,子修改父數(shù)據(jù)的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04
Vue?axios庫(kù)發(fā)送請(qǐng)求的示例介紹
axios是基于promise的HTTP庫(kù),可以使用在瀏覽器和node.js中,它不是vue的第三方插件,vue-axios是axios集成到Vue.js的小包裝器,可以像插件一樣安裝使用:Vue.use(VueAxios,?axios),本文給大家介紹Vue?axios和vue-axios關(guān)系,感興趣的朋友一起看看吧2022-08-08

