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

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

Vue管理后臺由角色動態(tài)生成路由及菜單(4)- 引入axios獲得roles動態(tài)生成菜單

2023-03-27 19:30 作者:就那個小子  | 我要投稿

1.安裝axios,創(chuàng)建請求和響應(yīng)攔截器,建立環(huán)境變量文件,模擬獲得token和userInfo接口。

?????終端中運行? npm i axios 安裝axios。在/src目錄下創(chuàng)建utils/request.js 用來封裝請求。同時在項目根目錄下創(chuàng)建env環(huán)境變量文件( .env.development為開發(fā)時環(huán)境變量,.env.production為生成時環(huán)境變量?)。 axios.create的baseURL使用環(huán)境變量,因為每次修改環(huán)境變量都需要重新編譯才能生效,所以平時開發(fā)的時候為了省時都是直接在此添加一行實際用到的Url(切記提交代碼前改為使用環(huán)境變量的 (づ╥﹏╥)づ 之前忘記了2次導(dǎo)致生產(chǎn)環(huán)境請求了測試環(huán)境服務(wù)器,教訓(xùn)?。?。

引用axios,創(chuàng)建環(huán)境變量

?request.js中主要做了創(chuàng)建axios實例并攔截請求和響應(yīng),做一些處理。實際項目中根據(jù)需要在請求攔截中附加token,在響應(yīng)攔截中根據(jù)后端返回的響應(yīng)碼做對應(yīng)的處理。

request.js大概代碼:

2. 創(chuàng)建測試api。在src/下創(chuàng)建apis目錄,生成login.js用來處理和登錄相關(guān)的api。這里測試只用了login登錄和getInfo獲得用戶信息兩個接口

測試api

然后在之前views/Login.vue測試頁面中簡單寫一個輸入用戶名+密碼以及一個登錄按鈕。點擊登錄按鈕dispatch登錄操作對應(yīng)的loginFn,拿到token并存儲到state中;后繼續(xù)dispatch獲得用戶信息對應(yīng)的getUserInfo拿到roles和userInfo并存儲到state中。這里獲得token后存到了本地,取的時候也從本地取,本地沒有時默認(rèn)為'',防止刷新后store中數(shù)據(jù)丟失又需要重新登錄。

登錄存儲token和roles

Login.vue中dispatch獲得用戶信息后就可以跳轉(zhuǎn)到首頁了。

3. 到這里就只需要根據(jù)用戶的role過濾出他有權(quán)限看的頁面的路由動態(tài)生成左側(cè)導(dǎo)航菜單,并且使用router.beforeEach路由守衛(wèi)進(jìn)行權(quán)限判斷攔截處理。

之前為了測試,router/index.js中new VueRouter時傳入的routes為所有路由,現(xiàn)在改為只傳入不需要權(quán)限就能訪問的constantRoutes;同時把store/index.js中的state中 routes 改為空數(shù)組,新增2個方法,調(diào)用getUserInfo后拿到rules根據(jù)用戶角色從所有路由中過濾能訪問的路由數(shù)據(jù)賦值給state中的routes。

修改之前測試寫法,過濾路由

filterAsyncRoutes方法中,在有子路由即有children情況下使用遞歸處理:


在/src下生成permission.js進(jìn)行路由守衛(wèi),并在main.js中引入。代碼僅提供思路參考,實際根據(jù)項目完善異常處理

根據(jù)角色動態(tài)生成菜單

到這里根據(jù)用戶角色生成動態(tài)路由全部實現(xiàn)思路走了一遍。實現(xiàn)方式只是多種優(yōu)秀方式中的一種,這4篇關(guān)聯(lián)文章僅供自己記錄實現(xiàn)思路回顧用,如有見解歡迎交流


Vue管理后臺由角色動態(tài)生成路由及菜單(4)- 引入axios獲得roles動態(tài)生成菜單的評論 (共 條)

分享到微博請遵守國家法律
溧水县| 荆州市| 南华县| 福安市| 耒阳市| 兖州市| 南丹县| 新干县| 黄浦区| 高邑县| 汪清县| 永嘉县| 广平县| 望谟县| 肥城市| 嘉义市| 兴文县| 晋江市| 兰西县| 贵德县| 郸城县| 襄垣县| 大埔县| 辛集市| 新田县| 新乐市| 霍州市| 孝昌县| 巴楚县| 颍上县| 林周县| 闻喜县| 襄城县| 白朗县| 乌拉特后旗| 泰顺县| 那坡县| 安塞县| 和平区| 灌南县| 简阳市|