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

我就是我 2024-04-06 15:32 168阅读 0赞

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

本文内容

  • ⭐ 专栏简介
  • 路由守卫:前置守卫和后置守卫
      1. 前置守卫
      • 使用方式
        • 全局前置守卫
        • 局部前置守卫
      1. 后置守卫
      • 使用方式
        • 全局后置守卫
    • 案例:路由跳转前后权限验证
    • 总结
  • ⭐ 写在最后

⭐ 专栏简介

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

在这里插入图片描述


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

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

1. 前置守卫

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

使用方式

全局前置守卫

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

  1. router.beforeEach((to, from, next) => {
  2. // 在路由跳转前执行的操作
  3. // 可以进行权限验证、页面加载提示等
  4. // 示例:权限验证
  5. if (!isAuthenticated()) {
  6. next('/login'); // 跳转到登录页
  7. } else {
  8. next(); // 继续路由跳转
  9. }
  10. });
局部前置守卫

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

  1. const routes = [
  2. {
  3. path: '/home',
  4. component: Home,
  5. beforeEnter: (to, from, next) => {
  6. // 在路由跳转前执行的操作
  7. // 可以进行权限验证、页面加载提示等
  8. // 示例:页面加载提示
  9. showLoadingIndicator();
  10. next(); // 继续路由跳转
  11. }
  12. }
  13. ];

2. 后置守卫

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

使用方式

全局后置守卫

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

  1. router.afterEach((to, from) => {
  2. // 在路由跳转后执行的操作
  3. // 可以进行页面的统计、日志记录等
  4. // 示例:页面统计
  5. trackPageView(to.path);
  6. });

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

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

  1. // main.js
  2. import Vue from 'vue';
  3. import VueRouter from 'vue-router';
  4. import App from './App.vue';
  5. Vue.use(VueRouter);
  6. const router = new VueRouter({
  7. routes: [
  8. // 路由配置
  9. ]
  10. });
  11. // 全局前置守卫:权限验证
  12. router.beforeEach((to, from, next) => {
  13. if (to.meta.requiresAuth && !isAuthenticated()) {
  14. next('/login');
  15. } else {
  16. next();
  17. }
  18. });
  19. new Vue({
  20. el: '#app',
  21. router,
  22. render: h => h(App)
  23. });

总结

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

⭐ 写在最后

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

发表评论

表情:
评论列表 (有 0 条评论,168人围观)

还没有评论,来说两句吧...

相关阅读

    相关 react守卫

    react中一切皆组件--2018.7.18 目标:自定义user界面的前置路由守卫,当用户点击要进入user组件时,路由守卫发起判断,如果条件满足则进入,否则跳转至l

    相关 react 守卫

    原理 `react路由守卫` 是通过 `高阶组件(HOC)` 实现的 因此针对不同的情况就要封装不同的 `HOC` 接下来展示一个有关登录权限的路由守卫例子 demo

    相关 beforeEach守卫 vue

    路由守卫:通过这个名词显而易见就类似于古代城池前士兵看守,你只有士兵认的通行证才能让你进入,如果不符合或者没有通行证那么你无法进入这个城池,这也是为了安全起见。 同样vue中

    相关 vue 守卫

    在main.js中,通过引入路由文件后,通过该对象使用 相当于路由的生命周期 1、全局前置守卫 (1)router.beforeEa