>웹 프론트엔드 >View.js >Vue Router에서 네비게이션 가드를 사용하는 방법은 무엇입니까?

Vue Router에서 네비게이션 가드를 사용하는 방법은 무엇입니까?

WBOY
WBOY원래의
2023-07-21 20:10:531063검색

Vue Router에서 네비게이션 가드를 어떻게 사용하나요?

내비게이션 가드는 Vue Router의 매우 중요하고 강력한 기능으로 내비게이션이 실행되기 전이나 현재 경로를 떠나기 전에 일부 사용자 정의 로직을 실행할 수 있습니다. 네비게이션 가드를 사용하여 라우팅 권한 확인, 페이지 전환 애니메이션 등과 같은 기능을 구현할 수 있습니다.

Vue Router는 세 가지 유형의 탐색 가드를 제공합니다.

  1. 전역 가드: beforeEach, beforeResolve 및 afterEach를 포함하여 애플리케이션의 모든 경로에 의해 트리거되는 가드입니다.
  2. 경로 가드: beforeEnter, beforeRouteEnter, beforeRouteUpdate 및 beforeRouteLeave를 포함하여 특정 경로만 트리거하는 가드입니다.
  3. 구성 요소 내의 가드: beforeRouteEnter, beforeRouteUpdate 및 beforeRouteLeave를 포함하여 현재 구성 요소의 가드만 트리거됩니다.

이 네비게이션 가드를 사용하는 방법을 설명하겠습니다.

먼저 Vue 프로젝트에 Vue Router를 도입하고 라우팅 인스턴스를 생성해야 합니다. 인스턴스를 생성하는 과정에서 글로벌 가드를 정의할 수 있습니다:

import Vue from 'vue'
import Router from 'vue-router'

Vue.use(Router)

const router = new Router({
  routes: [...]
})

// 全局前置守卫
router.beforeEach((to, from, next) => {
  // 在进入每个路由之前执行的逻辑
  next()
})

// 全局解析守卫
router.beforeResolve((to, from, next) => {
  // 在全部组件被解析之后执行的逻辑
  next()
})

// 全局后置守卫
router.afterEach((to, from) => {
  // 在进入每个路由之后执行的逻辑
})

위 코드에서는 세 개의 글로벌 가드를 정의했습니다. beforeEach는 각 경로에 진입하기 전에 로직을 실행하는 데 사용되며 beforeResolve는 모든 구성 요소가 구문 분석된 후 로직을 실행하는 데 사용되며 afterEach는 각 경로에 진입한 후 로직을 실행하는 데 사용됩니다. next() 메소드를 사용하면 다음 가드를 실행하거나 경로 점프를 수행할 수 있습니다.

다음으로 경로 가드를 정의할 수 있습니다. 경로를 생성할 때 각 특정 경로 구성에 대한 가드를 정의할 수 있습니다.

import Home from './views/Home.vue'
import About from './views/About.vue'

const router = new Router({
  routes: [
    {
      path: '/',
      name: 'home',
      component: Home
    },
    {
      path: '/about',
      name: 'about',
      component: About,
      beforeEnter: (to, from, next) => {
        // 在进入指定路由之前执行的逻辑
        next()
      }
    }
  ]
})

위 코드에서는 /about 경로에 대한 beforeEnter 가드를 정의합니다. 경로에 들어가기 전에 우리가 전달한 함수가 실행될 것입니다. 함수에 사용자 정의 논리를 작성한 후 next() 메서드를 사용하여 다음 가드 또는 경로 점프를 수행할 수 있습니다.

마지막으로 구성 요소 내부에 가드를 정의할 수도 있습니다. 구성 요소 내부에서는 beforeRouteEnter, beforeRouteUpdate 및 beforeRouteLeave의 세 가지 유형의 가드를 사용할 수 있습니다.

export default {
  ...
  beforeRouteEnter(to, from, next) {
    // 在进入当前组件之前执行的逻辑
    next()
  },
  beforeRouteUpdate(to, from, next) {
    // 当前组件复用时,更新路由参数时执行的逻辑
    next()
  },
  beforeRouteLeave(to, from, next) {
    // 在离开当前组件之前执行的逻辑
    next()
  }
}

위 코드는 구성 요소 내부의 가드 사용법을 보여 주며 해당 수명 주기 후크에 논리를 작성한 후 다음( ) 다음 단계.

요약하자면 Vue Router의 네비게이션 가드는 매우 유연하고 강력한 기능입니다. 글로벌 가드, 경로 가드 및 내부 구성 요소 가드를 사용하여 다양한 맞춤형 로직을 구현할 수 있습니다. 일상적인 개발에서 더 나은 사용자 경험과 기능 구현을 달성하기 위해 특정 요구 사항에 따라 이러한 가드를 유연하게 사용할 수 있습니다.

요약하자면 내비게이션 가드는 Vue Router에서 매우 중요한 기능으로 경로 전환 프로세스 중에 일부 사용자 정의 논리 처리를 수행하는 데 도움이 될 수 있습니다. Global Guard, Route Guard, Intra-Component Guard를 통해 경로 차단, 권한 확인, 경로 전환 애니메이션 등 다양한 기능을 구현할 수 있습니다. 실제 프로젝트 개발에서 네비게이션 가드를 합리적으로 사용하면 개발 효율성과 사용자 경험을 향상시킬 수 있습니다.

위 내용은 Vue Router에서 네비게이션 가드를 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.