在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML5  HTML/ vue:根據(jù)后臺(tái)傳來的值生成路由(動(dòng)態(tài)路由)的實(shí)現(xiàn)方案

vue:根據(jù)后臺(tái)傳來的值生成路由(動(dòng)態(tài)路由)的實(shí)現(xiàn)方案

公司要做一個(gè)后臺(tái)管理系統(tǒng),然后可能不同的角色對(duì)應(yīng)著不同的左側(cè)菜單,也就是個(gè)動(dòng)態(tài)路由,每個(gè)人能看到的東西不一樣。
我之前看過“花褲衩”大神的文檔,就是后端返回用戶角色,然后前端根據(jù)用戶角色來動(dòng)態(tài)控制路由,現(xiàn)在想讓后臺(tái)直接返回?cái)?shù)據(jù),然后根據(jù)數(shù)據(jù)去渲染
后臺(tái)返回類似的數(shù)據(jù):

clipboard.png
然后用addRoutes方法實(shí)現(xiàn)
我想問問大家有沒有這樣搞過,這樣做的話是否合理一點(diǎn),或者大家有沒有已經(jīng)實(shí)踐過的方案,希望大家能提出來一點(diǎn)意見

回答
編輯回答
六扇門
我之前看過“花褲衩”大神的文檔,就是完全前端控制,現(xiàn)在想讓后臺(tái)直接返回?cái)?shù)據(jù),然后根據(jù)數(shù)據(jù)去渲染

問題
完全就是前端控制? 沒看懂你的意思。

他的邏輯也是后臺(tái)回來權(quán)限數(shù)據(jù),然后處理成vue-router需要的數(shù)據(jù)格式動(dòng)態(tài)add上去。
至于為什么他的demo上是寫死,因?yàn)闆]有后臺(tái)服務(wù),數(shù)據(jù)都是mock的。

跟你說的 讓后臺(tái)返回?cái)?shù)據(jù)再根據(jù)數(shù)據(jù)渲染有什么不同?

2017年6月8日 07:12
編輯回答
心上人

一般的后臺(tái)管理系統(tǒng)中都會(huì)有這樣的需求
1、可以配置角色,每個(gè)角色有不同的菜單權(quán)限,數(shù)據(jù)存在數(shù)據(jù)庫中
2、創(chuàng)建用戶的時(shí)候?yàn)橛脩舴峙浣巧?br>3、用戶登錄頁時(shí)后臺(tái)返回菜單權(quán)限(讀取)
4、前端根據(jù)權(quán)限數(shù)據(jù)渲染菜單

前提如樓上幾位所說前端也需要與完整的路由映射

2017年12月9日 21:38
編輯回答
情殺

兩個(gè)方案。
方案一,路由全部權(quán)限注冊(cè),動(dòng)態(tài)獲取可顯示的導(dǎo)航id,為防止用戶直接地址欄輸入,加路由攔截器。

方案二,嚴(yán)格按照權(quán)限注冊(cè)路由,在vue實(shí)例化之前,異步獲取可注冊(cè)路由,再實(shí)行注冊(cè)

2017年12月24日 22:45
編輯回答
孤慣

其實(shí)就是權(quán)限管理的部分,不同用戶對(duì)應(yīng)的菜單可能不同,左側(cè)菜單欄菜單顯示項(xiàng)不同。左側(cè)封裝組件,數(shù)據(jù)通過后端處理,返回不同的菜單項(xiàng)。

2017年2月2日 03:22
編輯回答
孤星

剛?cè)雟ue沒多久,所以對(duì)有些東西一知半解,
謝謝大家的意見,結(jié)合每個(gè)回答者的思路,決定這么一種實(shí)現(xiàn)方式
1.登錄成功跳轉(zhuǎn)的時(shí)候,做路由攔截router.beforeEach,這時(shí)候去請(qǐng)求后臺(tái)數(shù)據(jù),返回來該用戶對(duì)應(yīng)的整個(gè)路由列表
2.跟原來寫死的幾個(gè)不用權(quán)限的路由concat起來,在用router.addRoutes方法,實(shí)現(xiàn)最終要呈現(xiàn)的路由
3.當(dāng)然,會(huì)有組件去遍歷最終的生成routes路由,生成左側(cè)邊欄

我會(huì)把實(shí)際用到的時(shí)候發(fā)現(xiàn)的坑分享出來,前端小學(xué)生謝謝大家

2017年11月10日 11:56
編輯回答
大濕胸

前面幾樓都已經(jīng)把思路說出來了,基本就是先正常寫路由,再根據(jù)權(quán)限判斷是否展示給用戶。我補(bǔ)充一個(gè)實(shí)踐的把。

  1. 把左側(cè)欄封裝成一個(gè)組件,比如nav:

clipboard.png

2.不同用戶傳入不同的數(shù)據(jù),通過props傳值到組件內(nèi)部,
clipboard.png

  1. 細(xì)節(jié)再自己進(jìn)行處理。
2018年9月6日 06:15
編輯回答
膽怯

同樓上的解決方案
我在項(xiàng)目中也是如此應(yīng)用,麻煩點(diǎn)只在于你和后臺(tái)協(xié)商的匹配
我這邊的邏輯思路是先全部隱藏,獲取數(shù)據(jù)后把對(duì)應(yīng)的路由顯示,再通過導(dǎo)航守衛(wèi)對(duì)route.to的目標(biāo)進(jìn)行權(quán)限驗(yàn)證就可以了。我是自己寫了一個(gè)vue的插件用來對(duì)vue實(shí)例注入我的權(quán)限驗(yàn)證方法,來做更加細(xì)化的按鈕級(jí)別的前端權(quán)限校驗(yàn)。
兩種方案其實(shí)類似,前一種方案可能對(duì)本地開發(fā)來說麻煩一些,在沒有接口的時(shí)候難以進(jìn)行工作
兩種方法都有統(tǒng)一弊病,沒法實(shí)時(shí)對(duì)當(dāng)前登錄用戶權(quán)限改變做出相應(yīng)
說到底前端只是輔助驗(yàn)證權(quán)限優(yōu)化客戶體驗(yàn),畢竟只有后端的權(quán)限驗(yàn)證才是有效的

2017年11月8日 04:34
編輯回答
情殺

后臺(tái)控制應(yīng)該是挺好的,靈活性好,數(shù)據(jù)驅(qū)動(dòng)嘛

2017年8月13日 06:21
編輯回答
萌小萌

將左側(cè)菜單封裝成一個(gè)組件 然后通過后臺(tái)數(shù)據(jù)來控制菜單的展示。

2018年9月23日 07:28
編輯回答
我甘愿

我這里的參考方案是這樣的

1、本地需要一份完整的路由json配置文件;
2、登錄的同時(shí),將用戶的擁有那些路由權(quán)限記錄在全局對(duì)象中;
3、側(cè)邊欄組件 在組件初始化時(shí)會(huì)從全局對(duì)象中 讀取當(dāng)前用戶擁有的權(quán)限數(shù)組;
4、外加一份權(quán)限分配頁面,用于給其他新用戶開通權(quán)限和調(diào)整權(quán)限;
5、index.vue路由守衛(wèi)做 跳轉(zhuǎn)前和加載前監(jiān)聽 權(quán)限是否失效或者登錄狀態(tài)是否失效;

2018年7月28日 08:49