php - vue-router에 라우팅을 동적으로 추가하는 데 문제가 있습니다.
为情所困
为情所困 2017-05-16 13:07:46
0
1
426

간단한 설명

최근 프론트엔드와 백엔드를 분리하여 RBAC 기반의 권한 제어 문제를 연구하고 있습니다. vue-router를 사용하여 동적으로 경로를 추가할 때 작은 문제가 발생했습니다.

일반적인 아이디어는 다음과 같습니다:

  • 백그라운드 사용자가 성공적으로 로그인한 후 해당 사용자에 해당하는 권한 목록을 서버에서 가져와 sessionStorage에 저장합니다.

  • 사용자를 백엔드 홈페이지로 리디렉션

  • router.beforeEach() 후크에서 sessionStorage의 권한 목록 데이터를 읽고 router.addRoutes()를 호출하여 경로를 동적으로 추가합니다.

코드

 router.beforeEach(to, from, next)
    {
        ...
        let 허가 = JSON.parse(window.sessionStorage.getItem('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 파일

  • 을 로드하는 것입니다.

    모두 감사합니다

    为情所困
    为情所困

    모든 응답(1)
    洪涛

    es6에서는 ${}가 백틱``,你的是单引号''으로 둘러싸여 있으므로 할당이 실패합니다

    최신 다운로드
    더>
    웹 효과
    웹사이트 소스 코드
    웹사이트 자료
    프론트엔드 템플릿