


Vue 애플리케이션에서 vue-router를 사용할 때 '오류: 탐색 가드를 통해 'xxx'에서 'yyy'로 이동할 때 리디렉션됨' 문제를 해결하는 방법은 무엇입니까?
Vue 애플리케이션에서 vue-router를 사용할 때 "오류: 탐색 가드를 통해 "xxx"에서 "yyy"로 이동할 때 리디렉션됨" 문제를 해결하는 방법은 무엇입니까?
Vue는 대화형 웹 애플리케이션을 더 쉽게 구축할 수 있게 해주는 인기 있는 JavaScript 프레임워크입니다. Vue Router는 Vue 애플리케이션에서 탐색 및 라우팅을 처리하는 핵심 플러그인입니다. 그러나 vue-router를 사용할 때 "오류: 탐색 가드를 통해 "xxx"에서 "yyy"로 이동할 때 리디렉션되었습니다."라는 일반적인 오류가 발생하는 경우가 있습니다. 이 오류는 초보자를 매우 혼란스럽게 만듭니다. 그래서 이번 글에서는 이 오류의 원인과 해결 방법을 소개하겠습니다.
오류 원인
vue-router를 사용할 때 특정 페이지에 액세스할 때 사용자의 권한을 제어하기 위해 라우팅 가드를 사용하는 경우가 많습니다. 예를 들어, 경로 가드를 사용하여 사용자가 로그인하지 않은 경우 로그인 페이지로 리디렉션할 수 있습니다. 그런데 Route Guard를 사용하다 보면 다음과 같은 오류가 가끔 발생합니다.
Error: Redirected when going from "xxx" to "yyy" via a navigation guard
이 오류가 발생하는 이유는 beforeEach() 메소드를 사용하여 사용자를 리디렉션했지만 "redirect" 상황 처리를 제대로 처리하지 못했기 때문입니다. 사용자를 리디렉션하는 경우 Vue Router에 이 사실을 알려야 합니다. 그렇지 않으면 Vue Router는 우리가 리디렉션하지 않았다고 생각할 것입니다.
해결 방법
이 오류를 해결하려면 경로 가드 사용 방식을 적절하게 수정해야 합니다. 가능한 해결 방법은 다음과 같습니다.
- Next(false) 사용
next(false)를 사용하면 리디렉션 없이 경로를 종료한다는 뜻입니다. 따라서 beforeEach()에서 next(false)를 사용하면 이 오류를 피할 수 있습니다.
예를 들어 다음과 같이 경로 가드를 수정할 수 있습니다:
router.beforeEach((to, from, next) => { if (to.meta.requiresAuth && !isAuthenticated) { next('/login') //重定向到登录页 } else { next(false) //终止路由 } })
- Next({ path: '/login' })
next({ path: '/login' })를 사용할 때 이는 다음을 의미합니다. 우리는 사용자를 지정된 경로(여기서는 /login)로 리디렉션하려고 합니다. 이런 식으로 Vue Router는 우리가 리디렉션되었음을 알고 있습니다.
예를 들어 다음과 같이 경로 가드를 수정할 수 있습니다:
router.beforeEach((to, from, next) => { if (to.meta.requiresAuth && !isAuthenticated) { next({ path: '/login' }) //重定向到登录页 } else { next() //正常路由 } })
- Next({ name: 'login' })
next({ name: 'login' })를 사용하면 사용자를 지정된 이름의 경로로 리디렉션하고 싶습니다. 이 이름은 Vue Router에 정의된 경로 이름입니다.
예를 들어, "login"이라는 이름의 경로를 다음과 같이 정의할 수 있습니다:
const routes = [ { path: '/login', name: 'login', component: Login } ]
그런 다음 경로 가드를 다음과 같이 수정할 수 있습니다:
router.beforeEach((to, from, next) => { if (to.meta.requiresAuth && !isAuthenticated) { next({ name: 'login' }) //重定向到具有名称“login”的路由 } else { next() //正常路由 } })
Summary
Vue Router를 사용할 때, 다음과 같이 하는 방법을 이해해야 합니다. 경로 가드를 사용하면 사용자 액세스 권한을 제어하고 사용자를 지정된 페이지로 리디렉션하는 데 도움이 됩니다. 그러나 루트 가드를 사용하는 경우 "오류: 네비게이션 가드를 통해 "xxx"에서 "yyy"로 이동할 때 리디렉션되었습니다"라는 오류가 발생하는 경우가 있습니다. 이때 next(false), next({ path: '/login' }), next({ name: 'login' }) 등을 사용하는 등 라우팅 가드 사용 방식을 적절하게 수정해야 합니다. 등을 사용하므로 이 오류를 피할 수 있습니다.
위 내용은 Vue 애플리케이션에서 vue-router를 사용할 때 '오류: 탐색 가드를 통해 'xxx'에서 'yyy'로 이동할 때 리디렉션됨' 문제를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











vue.js에서 bootstrap 사용은 5 단계로 나뉩니다 : Bootstrap 설치. main.js.의 부트 스트랩 가져 오기 부트 스트랩 구성 요소를 템플릿에서 직접 사용하십시오. 선택 사항 : 사용자 정의 스타일. 선택 사항 : 플러그인을 사용하십시오.

HTML 템플릿의 버튼을 메소드에 바인딩하여 VUE 버튼에 함수를 추가 할 수 있습니다. 메소드를 정의하고 VUE 인스턴스에서 기능 로직을 작성하십시오.

vue.js의 시계 옵션을 사용하면 개발자가 특정 데이터의 변경 사항을들을 수 있습니다. 데이터가 변경되면 콜백 기능을 트리거하여 업데이트보기 또는 기타 작업을 수행합니다. 구성 옵션에는 즉시 콜백을 실행할지 여부와 DEEP를 지정하는 즉시 포함되며, 이는 객체 또는 어레이에 대한 변경 사항을 재귀 적으로 듣는 지 여부를 지정합니다.

VUE 멀티 페이지 개발은 vue.js 프레임 워크를 사용하여 응용 프로그램을 구축하는 방법입니다. 여기서 응용 프로그램은 별도의 페이지로 나뉩니다. 코드 유지 보수 : 응용 프로그램을 여러 페이지로 분할하면 코드를보다 쉽게 관리하고 유지 관리 할 수 있습니다. 모듈 식 : 각 페이지는 쉬운 재사용 및 교체를 위해 별도의 모듈로 사용할 수 있습니다. 간단한 라우팅 : 페이지 간의 탐색은 간단한 라우팅 구성을 통해 관리 할 수 있습니다. SEO 최적화 : 각 페이지에는 자체 URL이있어 SEO가 도움이됩니다.

vue.js에서 JS 파일을 참조하는 세 가지 방법이 있습니다. & lt; script & gt; 꼬리표;; mounted () 라이프 사이클 후크를 사용한 동적 가져 오기; Vuex State Management Library를 통해 수입.

vue.js는 이전 페이지로 돌아갈 수있는 네 가지 방법이 있습니다. $ router.go (-1) $ router.back () 사용 & lt; router-link to = & quot;/quot; Component Window.history.back () 및 메소드 선택은 장면에 따라 다릅니다.

vue.js가 트래버스 어레이 및 객체에 대한 세 가지 일반적인 방법이 있습니다. V- 결합 지시문은 V-FOR와 함께 사용하여 각 요소의 속성 값을 동적으로 설정할 수 있습니다. .MAP 메소드는 배열 요소를 새 배열로 변환 할 수 있습니다.

VUE에서 DIV 요소를 점프하는 두 가지 방법이 있습니다. VUE 라우터를 사용하고 라우터 링크 구성 요소를 추가하십시오. @Click 이벤트 리스너를 추가하고 이것을 호출하십시오. $ router.push () 메소드를 점프하십시오.
