公司要做一個(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ù):
然后用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ù)渲染有什么不同?
剛?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é)生謝謝大家
同樓上的解決方案
我在項(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)證才是有效的
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國(guó)家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
北大課工場(chǎng)是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國(guó)家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國(guó)制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級(jí)產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國(guó)職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問,美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。