最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Vue管理后臺(tái)由角色動(dòng)態(tài)生成路由及菜單(3)- 路由表生成左側(cè)導(dǎo)航菜單

2023-03-26 14:20 作者:就那個(gè)小子  | 我要投稿

這一篇繼續(xù)記錄生成測(cè)試頁(yè)面、路由表、根據(jù)store中routes生成導(dǎo)航菜單。


1. 按照本測(cè)試項(xiàng)目左側(cè)菜單結(jié)構(gòu)在views目錄下生成對(duì)應(yīng)頁(yè)面組件,同時(shí)在router/index.js中添加對(duì)應(yīng)路由規(guī)則,路由表中meta用于后面生成菜單時(shí)的icon圖標(biāo)和權(quán)限控制,這里可以先不管。圖中框起的監(jiān)控總菜單為示例 頁(yè)面菜單-views下頁(yè)面組件-對(duì)應(yīng)路由 3者間關(guān)系,“配置”總菜單類(lèi)似。

生成測(cè)試頁(yè)面和對(duì)應(yīng)路由

2. 上面把測(cè)試頁(yè)面都準(zhǔn)備好了,現(xiàn)在處理根據(jù)路由表生成左側(cè)菜單。

按照需不需要權(quán)限控制,把所有路由表分成2塊:constantRoutes表示不需要權(quán)限控制能直接訪問(wèn)的頁(yè)面(該測(cè)試項(xiàng)目只有/login不需要),asyncRoutes表示需要權(quán)限控制的頁(yè)面(把/404和 * 兩個(gè)路由放到數(shù)組最后)(操作之后只有/login能訪問(wèn)了,訪問(wèn)其他路由將是空白頁(yè))。并export暴露出去,使用vuex引入這兩塊路由,方便處理動(dòng)態(tài)路由和生成動(dòng)態(tài)菜單。這一步為了測(cè)試暫時(shí)把new VueRouter時(shí)掛載的routes為所有路由,Store中routes也為所有路由,后續(xù)將根據(jù)用戶(hù)角色修改這2處。

暴露路由表,store引入

3. 在之前創(chuàng)建的layout目錄的SideBar組件中引用store中的routes,并生成需要的路由結(jié)構(gòu)。

這一步涉及組件遞歸和點(diǎn)擊跳轉(zhuǎn),在工作的項(xiàng)目中首次處理時(shí)沒(méi)有思緒花費(fèi)了大量時(shí)間,后續(xù)看網(wǎng)上各大神的文章慢慢領(lǐng)悟便有了自己的思路。根據(jù)路由處理成菜單有多種實(shí)現(xiàn)思路,這里只是簡(jiǎn)單的實(shí)現(xiàn)。

菜單結(jié)構(gòu)對(duì)應(yīng)的組件

這里直接貼上菜單組件代碼:

這里需要注意的有下面幾點(diǎn):

  • <el-menu 組件中

    • :router="true"啟用vue-router模式點(diǎn)擊就能導(dǎo)航。需要結(jié)合 <el-menu 組件的:index屬性綁定為路由path

    • :default-active="activeMenu"處理菜單高亮,直接用當(dāng)前路由path;但是像/device/detail這類(lèi)子頁(yè)面因?yàn)槁酚杀硖砑恿薶idden屬性,并沒(méi)有渲染到菜單欄中,所以用meta中的activeMenu屬性(值為父級(jí)路由path)進(jìn)行處理

  • <SideBarItem

    • :base-path="item.path"? 該組件遞歸,base-path表示當(dāng)前層的路由path

    • 遞歸的組件需要添加 name 屬性,平時(shí)寫(xiě)組件時(shí)應(yīng)該養(yǎng)成寫(xiě)name的習(xí)慣

遞歸組件必須添加 name
  • <Menu-item組件

    • :index="item.path=='/'?'/':basePath+'/'+item.path"? ?組件遞歸時(shí),上級(jí)路由path+本級(jí)路由path;導(dǎo)致根路由/多次添加變成“///”所以這里進(jìn)行判斷處理

之后便能根據(jù)store中的routes循環(huán)生成多層次的導(dǎo)航菜單。

下篇文章繼續(xù)記錄用戶(hù)登錄拿到token和roles來(lái)過(guò)濾routes動(dòng)態(tài)生成菜單,并添加permission.js用router.beforeEach攔截處理路由權(quán)限。



Vue管理后臺(tái)由角色動(dòng)態(tài)生成路由及菜單(3)- 路由表生成左側(cè)導(dǎo)航菜單的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
婺源县| 泽普县| 霍城县| 洛阳市| 五寨县| 永泰县| 滕州市| 城固县| 河西区| 永丰县| 怀安县| 西宁市| 瑞昌市| 左云县| 满城县| 铁岭县| 克拉玛依市| 元朗区| 丹凤县| 莎车县| 安康市| 伊川县| 嵊泗县| 新民市| 博罗县| 瓮安县| 鄂托克旗| 五华县| 卢湾区| 茶陵县| 永登县| 集贤县| 利津县| 阆中市| 南郑县| 吉木乃县| 连江县| 临清市| 南漳县| 会昌县| 汝州市|