日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

老板让我十分钟上手nx-admin

發布時間:2025/3/15 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 老板让我十分钟上手nx-admin 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

大體流程

參考資料:

nx-admin項目地址

首先這里就不講解vue和vuex之類的基礎東西了 有興趣的可以去官方文檔了解。這里根據流程走向大概說說

路由配置

首先找到路由配置,路由配置放在了src/router/index.js路由配置里暴露了兩個常量 一個是 constantRouterMap 另外一個是 asyncRouterMap 這里先說說constantRouterMap。 nx-admin的權限驗證大概是

  • 1 默認大家都能訪問的頁面,不需要權限, 都訪問的頁面定義為 constantRouterMap
  • 2 需要登錄或者需要權限的頁面路由定義為 asyncRouterMap

根據后臺獲取到用戶信息role(權限)的不同來動態加載asyncRouterMap中meta.role的權限對應的頁面

登錄成功后做的事情

點擊登錄以后 左側的側邊欄有導航列表。 這里提出兩個疑問?

  • 根據路由配置說的 動態加載對應的權限路由 那么側邊欄那么多路由 肯定不能寫死吧?
  • 我點擊登錄后 那些登錄流程怎么走的?用戶權限存在哪里?token在哪里?

側邊欄的動態渲染

根據問題1來回答 首先我們找到layout也就是src/views/layout/Layout.vue,
因為在路由配置文件我們看見asyncRouterMap中好多組件的父組件都是Layout 在Layout中我們就可以看到有個組件sidebar。
ok繼續找sidebar這個組件 src/views/layout/components/Sidebar/index.vue,發現這里就是渲染側邊欄的,然后找到渲染的變量是permission_routers 這個變量是存在vuex里面的,也就是說路由是存在vuex的 所以咋們去vuex里面找找看 src/store/modules/permission.js。

路由的動態加載

src/store/modules/permission.js 這個文件里面有個actions

GenerateRoutes({ commit }, data) {return new Promise(resolve => {const { roles } = datalet accessedRoutersif (roles.indexOf('admin') >= 0) {accessedRouters = asyncRouterMap} else {accessedRouters = filterAsyncRouter(asyncRouterMap, roles)}commit('SET_ROUTERS', accessedRouters)resolve()})}

發現就是這一段代碼更改了permission_routers,具體邏輯咱們不看 簡單解釋來說就是

如果用戶的權限是管理員把asyncRouterMap所有的路由頁面都渲染出來,畢竟管理員嘛 你懂的權限嘛。否則 我不是管理員但是也不是游客就是一小市民 那么我要去asyncRouterMap中找找我小市民能夠訪問哪些頁面。

看完這段邏輯咋們就知道了這個路由是如何動態更改的了,等等,是不是忘了啥? 雖然我知道這個actions,但是。。。在哪調用的? 經過深思熟慮的著想,在花了0.1s后 就得出,既然是路由嘛 肯定是有個全局的地方要做判斷的 所以得出結論就是 router.beforeEach, 一開始去找那個啥src/main.js,發現beforeEach被分離在src/permission.js 打開這個文件。一切疑問都解開了。

用戶權限的獲取

說真的。。這個文件好長。。都不想看了。。。。 下圖的代碼這么長 看個毛啊。。于是我簡單翻譯了下

router.beforeEach((to, from, next) => {NProgress.start() // start progress bar if (getToken()) { // 判斷是否有tokenif (to.path === '/login') {next({ path: '/' })NProgress.done() // router在hash模式下 手動改變hash 重定向回來 不會觸發afterEach 暫時hack方案 ps:history模式下無問題,可刪除該行!} else {if (store.getters.roles.length === 0) { // 判斷當前用戶是否已拉取完user_info信息store.dispatch('GetUserInfo').then(res => { // 拉取user_infoconst roles = res.data.rolestore.dispatch('GenerateRoutes', { roles }).then(() => { // 生成可訪問的路由表router.addRoutes(store.getters.addRouters) // 動態添加可訪問路由表next({ ...to, replace: true }) // hack方法 確保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record})}).catch(() => {store.dispatch('FedLogOut').then(() => {Message.error('Verification failed, please login again')next({ path: '/login' })})})} else {// 沒有動態改變權限的需求可直接next() 刪除下方權限判斷 ↓if (hasPermission(store.getters.roles, to.meta.role)) {next()//} else {next({ path: '/401', query: { noGoBack: true }})NProgress.done() // router在hash模式下 手動改變hash 重定向回來 不會觸發afterEach 暫時hack方案 ps:history模式下無問題,可刪除該行!}// 可刪 ↑}}} else {if (whiteList.indexOf(to.path) !== -1) { // 在免登錄白名單,直接進入next()} else {next('/login') // 否則全部重定向到登錄頁NProgress.done() // router在hash模式下 手動改變hash 重定向回來 不會觸發afterEach 暫時hack方案 ps:history模式下無問題,可刪除該行!}} })

請說人話,翻譯成人話的版本。。。

每次更改頁面路由你有沒有token啊?有啊好的,你的權限是默認的權限0么?是的。。我就是一游客系統獲取我的信息..拿到權限值,動態加載路由(GenerateRoutes)...通行...不是。。我是權限汪(admin)等等..我看看作者有沒有把你降級沒有好了。。你還是權限汪 請進有滾吧,你已經不是權限汪了,作者已經把你寫成戰斗力只有5的渣渣了沒有沒有還敢闖這里?滾去關口(/login)

沒錯,就這么簡單。整個權限驗證流程就完整了。剩下的就是讀讀文檔啊,看看如何使用組件之類的了。

參考 https://github.com/Relsoul

總結

以上是生活随笔為你收集整理的老板让我十分钟上手nx-admin的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 茄子视频A | 久久久啊啊啊 | 亚洲天堂一区二区三区四区 | 中文字幕日韩电影 | 激情小说视频在线 | 日日夜夜拍| 国产普通话bbwbbwbbw | 国产精品国产三级国产专区51区 | 99色视频 | 噜噜狠狠狠狠综合久久 | 久久亚洲av成人无码国产电影 | www.日日日 | 久久一二三四区 | 亚洲三级成人 | 国内成人综合 | 青青毛片 | 自拍视频网站 | 国产剧情久久 | 成人av动漫在线观看 | av国产在线观看 | 国产一二三四五区 | 日b在线观看 | 四虎音影| 国产亚洲欧美精品久久久久久 | 两个人看的www视频免费完整版 | 成av人片一区二区三区久久 | 久久久久人妻一区精品色 | 午夜免费福利网站 | 日韩福利电影在线观看 | 小毛片网站| 国产片淫乱18一级毛片动态图 | 娇妻高潮浓精白浆xxⅹ | 91色站 | 亚洲精品www久久久久久广东 | 国产aⅴ | 今天最新中文字幕mv高清 | 精品少妇一区二区三区免费观看 | av免费大片| 欧美成人猛片aaaaaaa | 中日韩在线 | 国产午夜麻豆影院在线观看 | 中文字幕在线观看91 | 女生高潮视频在线观看 | 懂色av中文一区二区三区天美 | 欧美另类天堂 | av少妇| 又黄又爽的免费视频 | 国产高清在线视频观看 | 中文字幕影片免费在线观看 | 欧美 日本 国产 | 黄色片免费看 | 中文字幕av一区二区三区 | 亚洲视频 一区 | 铠甲勇士猎铠 | av永久免费在线观看 | 亚洲国产中文字幕在线观看 | 久久人人艹 | 一个人免费在线观看视频 | 黄网在线 | 国产一级在线观看 | 午夜视频在线 | 又黄又色又爽的视频 | 成人国产视频在线观看 | 亚洲 自拍 另类 欧美 丝袜 | 噜噜噜久久,亚洲精品国产品 | 激情综合图区 | 一区二区黄色片 | 日本伊人影院 | 在线视频欧美一区 | 狠狠a| 精品无码一区二区三区蜜臀 | 草逼视频网 | 中日韩黄色大片 | 影音先锋美女 | 免费一级肉体全黄毛片 | 欧美激情网 | 中文字幕在线观看网站 | 人妖被c到高潮欧美gay | 国产大奶在线 | 一区二区不卡视频在线观看 | 精品亚洲中文字幕 | 嫩草视频国产 | 亚洲作爱视频 | 阿的白色内裤hd中文 | 精品夜夜澡人妻无码av | 国产伦精品一区二区三区视频免费 | 色悠悠国产 | 久久在线 | 中文字幕在线国产 | 日韩精品视频免费 | 国产成人免费看一级大黄 | 中文字幕看片 | 在线观看网页视频 | 色综合久久久久 | 国产男女在线 | 在线国产中文字幕 | 欧美激情欧美激情在线五月 | 日本天堂网在线观看 | 粉嫩久久99精品久久久久久夜 |