导航守卫有哪三种?

简介: 导航守卫有哪三种?

导航守卫主要分为三种:

  1. 全局前置守卫:使用 router.beforeEach 注册,作用是在路由切换开始前进行拦截和处理,可以用来进行一些全局的权限校验、登录状态检查等操作。
  2. 全局解析守卫:使用 beforeResolve 注册,作用是在导航被确认之前,同时在所有组件内守卫和异步路由组件被解析之后,进行一些操作。
  3. 全局后置钩子:使用 afterEach 注册,作用是在导航成功完成后进行一些全局的清理操作,比如页面的埋点统计、日志记录等。

这些导航守卫适用于需要在路由切换过程中做一些额外处理的情况,比如权限控制、页面加载前后的操作等。

以下是一个简单的示例代码:

const router = new VueRouter({
  routes: [
    {
      path: '/admin',
      component: Admin,
      beforeEnter: (to, from, next) => {
        // 在进入 /admin 路由前进行权限校验
        if (user.isAdmin) {
          next(); // 确认跳转
        } else {
          next('/login'); // 重定向到登录页面
        }
      }
    }
  ]
});
 
router.beforeEach((to, from, next) => {
  // 在每次路由切换前进行全局的拦截处理,比如检查登录状态
  if (to.meta.requiresAuth && !user.isAuthenticated) {
    next('/login');
  } else {
    next();
  }
});
 
router.afterEach((to, from) => {
  // 在每次路由切换后进行全局的清理操作,比如页面埋点统计
  trackPageView(to.path);
});

以上示例展示了如何使用全局前置守卫、全局解析守卫和全局后置钩子对路由进行拦截、处理和清理操作。这些导航守卫能够帮助我们在路由切换时进行额外的控制和操作。


相关文章
|
2月前
导航守卫的执行顺序
导航守卫的执行顺序
20 0
|
2月前
导航守卫+vuex学习
直白的说,导航守卫就是路由跳转过程中的一些钩子函数,这些函数能让你在跳转过程中操作一些其他的事儿的时机,这就是导航守卫。 比如最常见的登录权限验证,当用户满足条件时,才让其进入导航,否则就取消跳转,并跳到登录页面让其登录。此时可以使用路由导航来实现。 导航守卫有三种:全局的, 单个路由独享的, 组件级的。
|
2月前
|
JavaScript
vue路由导航守卫(全局守卫、路由独享守卫、组件内守卫)
vue路由导航守卫(全局守卫、路由独享守卫、组件内守卫)
84 0
|
26天前
|
JavaScript 数据安全/隐私保护 开发者
导航守卫有哪三种?分别有什么作用
导航守卫有哪三种?分别有什么作用
6 0
|
2月前
|
JavaScript 前端开发
vue3中导航守卫
vue3中导航守卫
19 0
|
8月前
导航守卫的使用
导航守卫的使用
26 0
|
2月前
今日讲讲导航守卫
今日讲讲导航守卫
11 0
|
2月前
|
JavaScript 数据安全/隐私保护 UED
导航守卫(全局,组件,路由独享)都有什么作用导航守卫在 Vue Router 中扮演着重要的角色,不同类型的导航守卫有着不同的作用:1. **全局导航守卫**: - **作用**:
导航守卫(全局,组件,路由独享)都有什么作用导航守卫在 Vue Router 中扮演着重要的角色,不同类型的导航守卫有着不同的作用:1. **全局导航守卫**: - **作用**:
35 0
|
2月前
|
JavaScript
详解Vue3——设置导航守卫
详解Vue3——设置导航守卫
31 0
|
12月前
|
存储 JavaScript
vuex和导航守卫
vuex和导航守卫