[javascript] Vue Router의 네비게이션 가드 타입들
Vue Router를 사용하여 단일 페이지 애플리케이션을 개발하는 경우, 네비게이션 가드(Navigation Guards)를 사용하여 페이지 이동 시 특정 동작을 수행할 수 있습니다. Vue Router에는 다양한 네비게이션 가드 타입이 있으며, 각각의 역할과 사용법에 대해 알아보겠습니다.
1. 전역 네비게이션 가드
전역 네비게이션 가드는 라우팅 전체에서 동작하며, router.beforeEach
를 사용하여 설정할 수 있습니다. 모든 라우팅 변경 시 실행됩니다.
예시:
router.beforeEach((to, from, next) => {
// 네비게이션 로직
next();
});
2. 라우트별 네비게이션 가드
라우트별 네비게이션 가드는 특정 라우트에만 적용되며, 라우트 객체의 속성으로 설정할 수 있습니다. beforeEnter
를 사용하여 정의합니다.
예시:
const router = new VueRouter({
routes: [
{
path: '/user/:id',
component: User,
beforeEnter: (to, from, next) => {
// 네비게이션 로직
next();
}
}
]
});
3. 컴포넌트 내 가드
컴포넌트 내 가드는 특정 컴포넌트에 대한 네비게이션 가드로, 해당 컴포넌트 내에 beforeRouteEnter
, beforeRouteUpdate
, beforeRouteLeave
를 활용하여 정의할 수 있습니다.
예시:
const User = {
beforeRouteEnter(to, from, next) {
// 진입 시 동작
next();
},
beforeRouteUpdate(to, from, next) {
// 업데이트 시 동작
next();
},
beforeRouteLeave(to, from, next) {
// 떠날 때 동작
next();
}
};
Vue Router의 네비게이션 가드를 이용하여 페이지 이동 로직을 세밀하게 제어할 수 있습니다. 각 타입의 가드를 적절히 활용하여 라우팅 기능을 안정적으로 구현할 수 있습니다.
참고 문헌: