首页 > 其他分享 >Vue 路由守卫使用文档

Vue 路由守卫使用文档

时间:2023-08-04 14:34:01浏览次数:38  
标签:Vue next 守卫 文档 跳转 组件 参数 路由


一、概述 Vue 路由守卫是 Vue Router 提供的一种机制,用于在路由导航过程中对路由进行控制和过滤。通过使用路由守卫,我们可以在路由跳转前、跳转后以及跳转过程中执行一些自定义的逻辑。

二、路由守卫的类型 Vue 路由守卫主要分为全局守卫、路由独享守卫和组件内守卫三种类型。

  1. 全局守卫 全局守卫会在路由导航的每个阶段都被调用,包括路由跳转前、跳转后以及跳转过程中。
  • beforeEach(to, from, next) 在路由跳转前被调用,可以用于进行权限验证、登录状态判断等操作。to 参数表示即将进入的路由对象,from 参数表示当前导航正要离开的路由对象,next 函数用于进行路由的跳转。
  • afterEach(to, from) 在路由跳转后被调用,可以用于进行页面统计、日志记录等操作。to 参数表示即将进入的路由对象,from 参数表示当前导航正要离开的路由对象。
  1. 路由独享守卫 路由独享守卫只会在特定的路由上被调用。
  • beforeEnter(to, from, next) 在路由进入前被调用,可以用于进行特定路由的权限验证、登录状态判断等操作。to 参数表示即将进入的路由对象,from 参数表示当前导航正要离开的路由对象,next 函数用于进行路由的跳转。
  1. 组件内守卫 组件内守卫只会在当前组件内被调用。
  • beforeRouteEnter(to, from, next) 在路由进入前被调用,可以用于进行当前组件的初始化操作。to 参数表示即将进入的路由对象,from 参数表示当前导航正要离开的路由对象,next 函数用于进行路由的跳转。
  • beforeRouteUpdate(to, from, next) 在当前路由改变,但是当前组件被复用时被调用。to 参数表示即将进入的路由对象,from 参数表示当前导航正要离开的路由对象,next 函数用于进行路由的跳转。
  • beforeRouteLeave(to, from, next) 在路由离开前被调用,可以用于进行当前组件的销毁操作。to 参数表示即将进入的路由对象,from 参数表示当前导航正要离开的路由对象,next 函数用于进行路由的跳转。

三、使用示例

  1. 全局守卫
router.beforeEach((to, from, next) => {
  // 权限验证、登录状态判断等操作
  if (to.meta.requireAuth && !isAuthenticated()) {
    next('/login');
  } else {
    next();
  }
});

router.afterEach((to, from) => {
  // 页面统计、日志记录等操作
});
  1. 路由独享守卫
const router = new VueRouter({
  routes: [
    {
      path: '/admin',
      component: Admin,
      beforeEnter: (to, from, next) => {
        // 权限验证、登录状态判断等操作
        if (to.meta.requireAuth && !isAuthenticated()) {
          next('/login');
        } else {
          next();
        }
      }
    }
  ]
});
  1. 组件内守卫
export default {
  beforeRouteEnter(to, from, next) {
    // 初始化操作
    fetchData().then(data => {
      next(vm => {
        vm.data = data;
      });
    });
  },
  beforeRouteUpdate(to, from, next) {
    // 组件被复用时的操作
    fetchData().then(data => {
      this.data = data;
      next();
    });
  },
  beforeRouteLeave(to, from, next) {
    // 组件销毁操作
    saveData(this.data).then(() => {
      next();
    });
  }
}

Vue 路由守卫可以在路由导航过程中对路由进行控制和过滤,实现权限验证、登录状态判断、页面统计、日志记录等功能。根据需要选择合适的守卫类型,并在相应的回调函数中编写自定义逻辑,从而实现更加灵活和可控的路由跳转。

标签:Vue,next,守卫,文档,跳转,组件,参数,路由
From: https://blog.51cto.com/u_15668841/6962243

相关文章

  • vue3项目部署到服务器刷新页面就404
    本地项目调的好好的,刷新也没有毛病,扔到服务器上,第一次打开是正常的,再刷新下就404了,不知道什么原因。百度了下才发现问题所在 constrouter=createRouter({history:createWebHistory(import.meta.env.BASE_URL),routes:[{path:'/',......
  • vue-pdf的使用
    package.json{"name":"CmsWap","version":"1.0.0","description":"","main":"main.js","dependencies":{"vue-pdf":"^4.3.0"......
  • 服务器线路-路由追踪
    服务器的线路服务器的线路有很多,大致的分为,CN2、CIA、CDIA、GIA等什么是IPLC专线:IPLC专线是国际私用出租线路。本质就是点对点内网。网络的入口在国内,所以不会受国际链路影响,也不用走国家防火墙,IP地址可用率高。不会被墙。出口在国外,可任意访问国内无法访问的网站。由于走的内......
  • Vuex 快速入门
    安装npmivuex--save//main.jsimportvuexfrom'Vuex'Vue.use(vuex)conststore=newVuex.store({//...})...state可以理解为vue文件里面的dataVue.use(vuex)conststore=newVuex.store({state:{name:'tyj',psd:'12......
  • 这才是!21 世纪的 API 文档该有的样子!
    前后端差点打起来事情是这样的:今天我们公司的后端说他接口写完了,并分享了一个接口文档给我。用的就是SwaggerUI自动生成的那种接口文档,就像这种:这种Swagger文档我每次看着就头大,毛病多多:查看多级模型时要一级级点开API多的时候找起来特别吃力提交参数为JSON的时候不能格式......
  • Vue学习 2.0 版本笔记
    Vue学习一、前端知识体系HTML(结构):超文本标记语言(HyperTextMarkupLanguage),决定网页的结构和内容CSS(表现):层叠样式表(CascadingStyleSheets),设定网页的表现样式JavaScript(行为):是一种弱类型脚本语言,其源代码不需经过编译,而是由浏览器解释运行,用于控制网页的行为表现层(CSS)CS......
  • 软件开发全文档下载(几百份软件阶段各类文档)
    一、前言软件开发工作中,在#夏天生活图鉴#计划,需求分析,开发实施,测试,评审,交付验收,以及投标等其他过程中,会产生大量的文档,为了规范项目整个流程,亦或是为了验收交付提供材料,或者是为了资质评审,我们都需要这些文档来支撑,下面我把这些文档罗列出来给大家参考,里面有好多套不同项目的模板......
  • Health Kit文档大变样,一起尝鲜!
    HealthKit文档全新升级,开发场景更清晰,聚焦你关心的问题,快来一起尝鲜!文档入口请戳:文档入口~如果你是运动健康的老朋友,可以从旧文档页面上方的提示信息中进入:最新版本哦。一、架构调整更易读——端/云开发一目了然HealthKit新架构文档从开发者视角出发,导航目录设计从端侧、云......
  • TP1900路由器拆解
    全貌无线功放无线功放2主控MTKTP1900BN......
  • vue创建项目步骤
    安装指定版本Vuecli一、降低版本如果是已经安装了4.0以上的版本,卸载重装即可npmuninstall-g@vue/clinpminstall-g@vue/[email protected]//后面为版本号二、其他安装3.0以下:npminstall-gvue-clinpminstall-g@vue/cli三、卸载3.0以下:npmuninstallvue-cli-g3.0及以上......