最近在研究前後臺(tái)分離下基於RBAC的權(quán)限控制問題,在使用vue-router動(dòng)態(tài)添加路由的時(shí)候,出現(xiàn)一個(gè)小問題,需要請(qǐng)教下各位.
大概思路如下:
後臺(tái)使用者登入成功以後,從服務(wù)端取得該使用者對(duì)應(yīng)的權(quán)限清單,並存入sessionStorage中
將使用者重新導(dǎo)向到後臺(tái)首頁(yè)
在router.beforeEach()鉤子中,將sessionStorage中的權(quán)限列表資料讀入,並調(diào)用router.addRoutes()動(dòng)態(tài)新增路由.
router.beforeEach(to, from, next)
{
...
let permission = JSON.parse(window.sessionStorage.getItem('permission'))
/*permission = [...{"client_route":"/test"}...]*/
if (permission) {
let newRoutes = []
permission.map((item, index) => {
newRoutes.push({
path:'${item.client_route}',
component: '../view${item.client_route.slice(1)}.vue',
meta:{Auth:true}
})
})
router.addRoutes(newRoutes)
}
...
}
思路是否有問題?
上面的程式碼有問題,path和component這裡的${}
不知道該怎麼處理.原諒我es6學(xué)的不好.╮(︶﹏︶")╭.我的本意是根據(jù)返回來的路由名稱去載入.vue
檔案