最近、vue-router を使用して動的にルートを追加する際に、RBAC に基づく許可制御の問題を研究しています。 p>
一般的な考え方は次のとおりです。
バックグラウンド ユーザーがログインに成功すると、そのユーザーに対応する権限リストがサーバーから取得され、sessionStorage に保存されます。
ユーザーをバックエンドのホームページにリダイレクトする
router.beforeEach() フックで、sessionStorage 内の許可リスト データを読み取り、router.addRoutes() を呼び出してルートを動的に追加します。
router.beforeEach(to、from、next)
{
...
let 許可 = JSON.parse(window.sessionStorage.getItem('permission'))
/*permission = [...{"client_route":"/test"}...]*/
if (許可) {
newRoutes = [] にします
Permission.map((項目, インデックス) => {
newRoutes.push({
パス:'${item.client_route}',
コンポーネント: '../view${item.client_route.slice(1)}.vue',
メタ:{認証:true}
})
})
router.addRoutes(newRoutes)
}
...
}
そのアイデアに問題はありますか?
上記のコードには問題があります。パスとコンポーネントの ${}
を処理する方法がわかりません。es6 をよく学習していないことをお詫びします。 ︶﹏︶")╭。私の本来の目的は、返されたルート名に基づいて .vue
ファイル
es6 では、${} がバッククォートで囲まれているため
`
`,你的是单引号''
、割り当ては失敗します