import { createRouter, createWebHashHistory } from 'vue-router'
import Home from '@/components/home.vue';
import About from '@/components/about.vue';
import Flutter from '@/components/n_flutter.vue';
const routes = [
{ path: '/', component: Home },
{ path: '/about', component: About },
{ path: '/flutter', component: Flutter },
]
const router = createRouter({
history: createWebHashHistory(),
routes,
});
outer.beforeEach((to) => {
// only redirect to 'Home'
// if we're not already on it
if (to.name !== 'Home') {
return '/'
}
});
export default router
이 코드는 Vue Router의 beforeEach 네비게이션 가드를 사용하여 라우터가 변경되기 전에 실행되는 함수입니다.
beforeEach 가드는 모든 라우터 변경 이벤트가 발생하기 전에 호출되며, 이 함수는 라우터 변경에 대한 조건을 확인하고 해당 조건이 충족되지 않을 때 홈 페이지로 리디렉션하는 역할을 합니다.
코드를 하나씩 살펴보겠습니다:
router.beforeEach 메서드를 호출하여 네비게이션 가드를 등록합니다.
이 가드는 모든 라우터 변경 이벤트에 대해 실행됩니다.
to 파라미터는 이동하려는 라우트 객체를 나타냅니다.
to.name은 이동하려는 라우트의 이름을 나타냅니다.
조건문 if (to.name !== 'Home')은 현재 이동하려는 라우트의 이름이 'Home'이 아닌 경우를 검사합니다.
즉, 홈 페이지가 아닌 다른 페이지로 이동하려고 할 때 이 조건이 참이 됩니다.
조건이 참이 되면 return '/'를 사용하여 루트 페이지로 리디렉션합니다.
이것은 홈 페이지로 되돌아가는 것을 의미합니다.
즉, 이 코드는 사용자가 홈 페이지가 아닌 다른 페이지로 이동하려고 할 때, 자동으로 홈 페이지로 리디렉션하도록 설정하는 코드입니다.
이렇게 하면 특정 페이지로의 이동을 제한하거나 사용자를 기본 페이지로 다시 보낼 수 있습니다.
'프로그래밍 > vue' 카테고리의 다른 글
[vue3] emitter.on 이벤트 사용시 emitter 갯수가 증가하는 이유 (0) | 2024.06.11 |
---|---|
[vue3] 컴포지션API 에서 defineEmits 하는 역할은? (0) | 2024.01.09 |
초보자를 위한 vue 개발 ES6 문법 4개 (0) | 2021.12.21 |
처음하는 vue2 + spring boot conroller 연동 1 (0) | 2021.12.13 |
vue 유효성 체크 validators 설치 및 실행 (0) | 2021.12.13 |