[javascript] Vue Router의 네비게이션 가드 사용 사례
Vue Router를 사용하면 라우팅 및 네비게이션 가드를 통해 애플리케이션의 네비게이션을 관리할 수 있습니다. 네비게이션 가드는 Vue Router에서 제공하는 기능 중 하나로, 라우터의 네비게이션을 제어하여 특정 조건을 충족할 때만 페이지로 이동하도록 설정할 수 있습니다.
전역 네비게이션 가드
const router = new VueRouter({
routes,
});
router.beforeEach((to, from, next) => {
// 네비게이션 가드 로직을 추가합니다.
if (to.meta.requiresAuth) {
// 사용자가 로그인했는지 확인하는 로직을 추가합니다.
if (user.loggedIn) {
next(); // 다음 페이지로 이동합니다.
} else {
next('/login'); // 로그인 페이지로 리다이렉트합니다.
}
} else {
next(); // 다음 페이지로 이동합니다.
}
});
위의 코드는 전역 네비게이션 가드를 설정하는 예시입니다. beforeEach
메서드를 사용하여 모든 라우트 전환에 적용될 네비게이션 가드를 정의할 수 있습니다. 예제에서는 to
객체의 meta.requiresAuth
속성을 사용하여 인증이 필요한 페이지에 대한 접근을 제어하고 있습니다.
라우트별 네비게이션 가드
const router = new VueRouter({
routes: [
{
path: '/profile',
component: Profile,
beforeEnter: (to, from, next) => {
// 라우트별 네비게이션 가드 로직을 추가합니다.
if (user.loggedIn) {
next(); // 다음 페이지로 이동합니다.
} else {
next('/login'); // 로그인 페이지로 리다이렉트합니다.
}
},
},
],
});
위의 코드는 라우트별로 네비게이션 가드를 설정하는 예시입니다. 각 라우트 객체의 beforeEnter
속성을 사용하여 해당 라우트에만 적용되는 네비게이션 가드를 정의할 수 있습니다.
네비게이션 가드를 통해 사용자의 권한 상태에 따라 페이지 이동을 제어할 수 있으며, 이는 애플리케이션의 보안 및 사용자 경험을 개선하는 데 도움이 됩니다.
더 많은 정보를 원하시면 Vue Router 공식문서를 참고하시기 바랍니다.