[javascript] Vue Router의 네비게이션 가드 훅

Vue Router는 Vue.js 애플리케이션에서 라우팅을 관리하는 데 사용되는 공식 라이브러리입니다. 네비게이션 가드 훅은 Vue Router에서 네비게이션 이벤트를 감지하여 애플리케이션을 보호하고 제어하는 데 사용됩니다.

전역 네비게이션 가드

전역 네비게이션 가드는 라우터 인스턴스의 beforeEach 메서드를 사용하여 모든 라우트 변경 이벤트를 가로채고 제어할 수 있습니다. 이를 통해 로그인 여부를 확인하거나 권한을 확인하여 특정 페이지로의 접근을 거부할 수 있습니다.

const router = new VueRouter({
  routes: [...],
});

router.beforeEach((to, from, next) => {
  // 여기에 네비게이션 가드 로직을 작성합니다.
  next(); // 다음 단계로 이동
});

라우트별 네비게이션 가드

라우트별 네비게이션 가드는 라우터 인스턴스에 직접 정의된 beforeEnter 훅을 이용하여 특정 라우트에 대한 접근을 제어할 수 있습니다.

const router = new VueRouter({
  routes: [
    {
      path: '/dashboard',
      component: Dashboard,
      beforeEnter: (to, from, next) => {
        // 여기에 라우트별 네비게이션 가드 로직을 작성합니다.
        next(); // 다음 단계로 이동
      },
    },
  ],
});

컴포넌트 내 네비게이션 가드

컴포넌트 내 네비게이션 가드를 사용하여 특정 컴포넌트에 진입하기 전후에 추가적인 로직을 수행할 수 있습니다. 이를 통해 컴포넌트 내에서 필요한 전처리나 후처리 작업을 수행할 수 있습니다.

export default {
  beforeRouteEnter(to, from, next) {
    // 여기에 컴포넌트 내 네비게이션 가드 로직을 작성합니다.
    next();
  },
  beforeRouteLeave(to, from, next) {
    // 여기에 컴포넌트 내 네비게이션 가드 로직을 작성합니다.
    next();
  },
};

네비게이션 가드 훅을 사용하여 Vue Router에서 라우팅 이벤트를 감지하고 효율적으로 제어할 수 있습니다.

참고 자료