vue路由動態重定向首頁


問題:

路由權限生成后,每個用戶角色的權限都不同,

怎么保證在通過路由守衛后進入(path: ‘/’ )正確跳到該用戶擁有權限的首頁面呢?

第一種解決方案:由后端來返回路由

以下為前端自行解決方案:

 // 根據roles權限生成可訪問的路由表
          store.dispatch('GenerateRoutes', { res }).then(() => {
            // 動態添加可訪問路由表
            // router.addRoutes(store.getters.addRouters)
            // hack方法 確保addRoutes已完成
            // next({ ...to, replace: true })

            // 動態路由重定向 start
            router.addRoutes(store.getters.addRouters)
            let str = ''
            function filterAsyncRouter (asyncRouterMap) {
              str += asyncRouterMap[0].path
              if (
                asyncRouterMap[0].children &&
                asyncRouterMap[0].children.length &&
                asyncRouterMap[0].children[0].meta.type !== 1
              ) {
                str += '/'
                filterAsyncRouter(asyncRouterMap[0].children)
              } else {
                return str
              }
            }
            if (from.path === '/login') {
              filterAsyncRouter(store.getters.addRouters, str)
              next({
                path: str,
                replace: true
              })
            } else {
              next({ ...to, replace: true })
            }
            // 動態路由重定向 end
          })

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM