路由守卫:前置守卫和后置守卫

聚沙成塔·每天进步一点点


⭐ 专栏简介

Vue学习之旅的奇妙世界 欢迎大家来到 Vue 技能树参考资料专栏!创建这个专栏的初衷是为了帮助大家更好地应对 Vue.js 技能树的学习。每篇文章都致力于提供清晰、深入的参考资料,让你能够更轻松、更自信地理解和掌握 Vue.js 的核心概念和技术。订阅这个专栏,让我们一同踏上更深入的 Vue学习之旅!为你的前端技能树添砖加瓦!

在这里插入图片描述


路由守卫:前置守卫和后置守卫

Vue Router 提供了路由守卫(Navigation Guards),用于在路由跳转前后执行一些逻辑操作,如权限验证、页面加载提示等。路由守卫分为前置守卫和后置守卫,它们分别在路由跳转前和路由跳转后执行。

1. 前置守卫

前置守卫用于在路由跳转前执行一些操作,例如进行权限验证或者页面加载提示。前置守卫可以阻止路由跳转,或者在跳转前执行一些异步操作。

使用方式

全局前置守卫

在 Vue Router 中,可以使用 router.beforeEach 注册全局前置守卫。

router.beforeEach((to, from, next) => {
  // 在路由跳转前执行的操作
  // 可以进行权限验证、页面加载提示等

  // 示例:权限验证
  if (!isAuthenticated()) {
    next('/login'); // 跳转到登录页
  } else {
    next(); // 继续路由跳转
  }
});
局部前置守卫

也可以在路由配置中使用 beforeEnter 注册局部前置守卫。

const routes = [
  {
    path: '/home',
    component: Home,
    beforeEnter: (to, from, next) => {
      // 在路由跳转前执行的操作
      // 可以进行权限验证、页面加载提示等

      // 示例:页面加载提示
      showLoadingIndicator();

      next(); // 继续路由跳转
    }
  }
];

2. 后置守卫

后置守卫用于在路由跳转后执行一些操作,例如页面的统计和日志记录等。后置守卫无法阻止路由跳转,只能在跳转后执行一些逻辑操作。

使用方式

全局后置守卫

在 Vue Router 中,可以使用 router.afterEach 注册全局后置守卫。

router.afterEach((to, from) => {
  // 在路由跳转后执行的操作
  // 可以进行页面的统计、日志记录等

  // 示例:页面统计
  trackPageView(to.path);
});

后置守卫没有局部注册的方式,只能注册全局后置守卫。

案例:路由跳转前后权限验证

// main.js

import Vue from 'vue';
import VueRouter from 'vue-router';
import App from './App.vue';

Vue.use(VueRouter);

const router = new VueRouter({
  routes: [
    // 路由配置
  ]
});

// 全局前置守卫:权限验证
router.beforeEach((to, from, next) => {
  if (to.meta.requiresAuth && !isAuthenticated()) {
    next('/login');
  } else {
    next();
  }
});

new Vue({
  el: '#app',
  router,
  render: h => h(App)
});

总结

  • 前置守卫: 在路由跳转前执行,用于权限验证、页面加载提示等操作。
  • 后置守卫: 在路由跳转后执行,用于页面统计、日志记录等操作。
  • 使用路由守卫可以增强应用的控制和用户体验,使得路由跳转的过程更加灵活和可控。

⭐ 写在最后

欢迎来到《Vue技能树专栏》!本专栏旨在帮助您全面深入地掌握Vue.js,一款现代、灵活且强大的JavaScript框架。无论您是初学者还是有一定经验的开发者,这里都将为您提供详细的指导、实用的技巧以及深入的理解,助您在Vue.js世界中游刃有余。如果文中出现有瑕疵的地方各位可以通过主页的左侧联系我指正,我们一起进步,

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

几何心凉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值