国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(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ó)家法律
靖西县| 宁乡县| 岳阳市| 稻城县| 鄂伦春自治旗| 寿阳县| 晋宁县| 乌拉特前旗| 广宁县| 南城县| 闵行区| 麻城市| 墨玉县| 大方县| 茂名市| 肃南| 二连浩特市| 合水县| 曲沃县| 长岛县| 田林县| 烟台市| 上蔡县| 什邡市| 石屏县| 临洮县| 阿克陶县| 柘荣县| 平塘县| 南开区| 德州市| 滦平县| 图片| 石门县| 怀集县| 凤山县| 合江县| 潼关县| 益阳市| 陆河县| 通江县|