1壁肋、權(quán)限組件:
render函數(shù)号胚,全局注冊(cè)組件。優(yōu)點(diǎn):使用起來很方面浸遗,但缺點(diǎn)就是需要自己建立一個(gè)vue文件猫胁。
S1.
Authorized.vue是設(shè)計(jì)的權(quán)限組件(由于權(quán)限判斷,如果在每個(gè)vue文件都先引入再使用會(huì)很麻煩跛锌,所以把他注冊(cè)為全局弃秆,要用的話,直接使用會(huì)方面很多)
補(bǔ)充知識(shí)點(diǎn):
a.h作為createElement的別名是Vue生態(tài)系統(tǒng)中的一個(gè)通用慣例,實(shí)際也是JSX所要求的【const h = this.$createElement】
b. scopedSlots作用域插槽菠赚,每個(gè)作用域都是一個(gè)返回若干VNode的函數(shù)盼樟。這邊返回的就是下面的<SettingDrawer />
c.用functional將組件標(biāo)記為函數(shù)式組件(函數(shù)式組件只是函數(shù)),意味他無狀態(tài)(沒有響應(yīng)式數(shù)據(jù))锈至,也沒有實(shí)例(沒有this上下文)晨缴,所以為了彌補(bǔ)缺少的實(shí)例,render函數(shù)傳入第二個(gè)參數(shù)作為上下文
參考Vue官方指南:https://cn.vuejs.org/v2/guide/render-function.html#%E6%8F%92%E6%A7%BD
S2.
將自定義的vue組件進(jìn)行全局注冊(cè)(在main.js中全局注冊(cè))峡捡,通過Vue.component
S3.
如何使用全局的組件(其實(shí)就是和使用普通的組件一樣击碗,簡單~) 。admin可以設(shè)置主題们拙,而其他角色不可以
2稍途、權(quán)限指令
可以方便的對(duì)一些按鈕,圖標(biāo)進(jìn)行權(quán)限控制砚婆。 但缺點(diǎn)是械拍,如果權(quán)限是動(dòng)態(tài)變化的,只會(huì)初始化一次(但正常一個(gè)角色被確定之后装盯,就不會(huì)動(dòng)態(tài)變化)
S1.
自定義指令
S2.
注冊(cè)坷虑,通過使用Vue.use
S3.
使用指令v-auth,只有admin可以看到這個(gè)圖標(biāo)
學(xué)習(xí)總結(jié):
1埂奈、權(quán)限這兩種方式迄损,是學(xué)到了,但函數(shù)式組件账磺?render函數(shù)芹敌?scopedSlots?之前學(xué)習(xí)過垮抗,好像又不太能記清了...只是知道可以這么用氏捞,歸根結(jié)底還是自己原理不熟悉啊...通過本篇的學(xué)習(xí),繼續(xù)來補(bǔ)充冒版,上述疑問的知識(shí)點(diǎn)液茎。畢竟遇到問題就要去解決,否則積累的問題只會(huì)越來越多壤玫。(不要追求速度豁护,但也不是不要速度哼凯,心態(tài)不急)