全局后置路由守卫(afterEach)

2023-11-10 14:04

本文主要是介绍全局后置路由守卫(afterEach),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

全局后置路由守卫(afterEach)

  • 功能:每一次切换任意路由组件之后都会被调用,相当于在进入下一个路由组件之后设置一个权限。

在这里插入图片描述

使用原理

  • 代码创建的位置:
    • 在创建router之后(const router = new VueRouter
    • 暴露router之前(export default router
  • afterEach中的回调函数在什么时候被调用?
    • 在初始化的时候执行一次,以后每一次切换完任意一个路由组件之后被调用
    • 回调函数没有固定形式,普通函数或箭头函数都可以
  • 回调函数有两个参数(没有next函数):
    • to参数:to是一个路由对象,表示到哪儿去(跳转的下一个路由组件)。
    • from参数:form是一个路由对象,表示从哪来(从哪个路由切换过来的)。
  • 格式:router.afterEach((to, from) => {})
  • 自定义属性(meta):在路由对象的添加meta(路由元)
    • 格式:meta : {属性名:''}
    • title属性:可以修改页面标题

在这里插入图片描述

import VueRouter from 'vue-router'import HuBei from '../pages/HuBei'
import City from '../pages/City'const router = new VueRouter({routes : [{name : 'bei',path : '/hubei',component : HuBei,meta : {title : '湖北省'},children : [{name : 'wh',path : 'wuhan',component : City,props : true,meta : {isAuth : true,title : '武汉市'}},{name : 'hs',path : 'huangshi',component : City,props : true,meta : {isAuth : true,title : '黄石市'}}]}]})// 全局后置路由守卫
router.afterEach((to, from) => {document.title = to.meta.title || '欢迎使用'
})export default router
// App.vue
<template><div><h2></h2><div><ul><li><router-link to="/hubei">湖北省</router-link></li></ul><router-view></router-view></div></div>
</template><script>export default {name : 'App'}
</script>
// HuBei.vue
<template><div><h2></h2><div><ul><li><router-link :to="{name : 'wh',params : {a1 : wh[0],a2 : wh[1],a3 : wh[2],}}">武汉市</router-link></li><li><router-link :to="{name : 'hs',params : {a1 : hs[0],a2 : hs[1],a3 : hs[2],}}">黄石市</router-link></li></ul><router-view></router-view></div></div>
</template><script>export default {name : 'HuBei',data(){return{wh : ['江岸区', '江汉区', '桥口区'],hs : ['下陆区', '铁山区', '西塞山区']}}}
</script>
// City.vue
<template><div><h2></h2><ul><li>{{a1}}</li><li>{{a2}}</li><li>{{a3}}</li></ul></div>
</template><script>export default {name : 'City',props : ['a1', 'a2', 'a3']}
</script>

这篇关于全局后置路由守卫(afterEach)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/383124

相关文章

SpringBoot全局域名替换的实现

《SpringBoot全局域名替换的实现》本文主要介绍了SpringBoot全局域名替换的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录 项目结构⚙️ 配置文件application.yml️ 配置类AppProperties.Ja

Go语言使用Gin处理路由参数和查询参数

《Go语言使用Gin处理路由参数和查询参数》在WebAPI开发中,处理路由参数(PathParameter)和查询参数(QueryParameter)是非常常见的需求,下面我们就来看看Go语言... 目录一、路由参数 vs 查询参数二、Gin 获取路由参数和查询参数三、示例代码四、运行与测试1. 测试编程路

Django中的函数视图和类视图以及路由的定义方式

《Django中的函数视图和类视图以及路由的定义方式》Django视图分函数视图和类视图,前者用函数处理请求,后者继承View类定义方法,路由使用path()、re_path()或url(),通过in... 目录函数视图类视图路由总路由函数视图的路由类视图定义路由总结Django允许接收的请求方法http

Spring Boot @RestControllerAdvice全局异常处理最佳实践

《SpringBoot@RestControllerAdvice全局异常处理最佳实践》本文详解SpringBoot中通过@RestControllerAdvice实现全局异常处理,强调代码复用、统... 目录前言一、为什么要使用全局异常处理?二、核心注解解析1. @RestControllerAdvice2

MySQL中的锁机制详解之全局锁,表级锁,行级锁

《MySQL中的锁机制详解之全局锁,表级锁,行级锁》MySQL锁机制通过全局、表级、行级锁控制并发,保障数据一致性与隔离性,全局锁适用于全库备份,表级锁适合读多写少场景,行级锁(InnoDB)实现高并... 目录一、锁机制基础:从并发问题到锁分类1.1 并发访问的三大问题1.2 锁的核心作用1.3 锁粒度分

golang实现动态路由的项目实践

《golang实现动态路由的项目实践》本文主要介绍了golang实现动态路由项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习... 目录一、动态路由1.结构体(数据库的定义)2.预加载preload3.添加关联的方法一、动态路由1

Nginx路由匹配规则及优先级详解

《Nginx路由匹配规则及优先级详解》Nginx作为一个高性能的Web服务器和反向代理服务器,广泛用于负载均衡、请求转发等场景,在配置Nginx时,路由匹配规则是非常重要的概念,本文将详细介绍Ngin... 目录引言一、 Nginx的路由匹配规则概述二、 Nginx的路由匹配规则类型2.1 精确匹配(=)2

SpringIntegration消息路由之Router的条件路由与过滤功能

《SpringIntegration消息路由之Router的条件路由与过滤功能》本文详细介绍了Router的基础概念、条件路由实现、基于消息头的路由、动态路由与路由表、消息过滤与选择性路由以及错误处理... 目录引言一、Router基础概念二、条件路由实现三、基于消息头的路由四、动态路由与路由表五、消息过滤

grom设置全局日志实现执行并打印sql语句

《grom设置全局日志实现执行并打印sql语句》本文主要介绍了grom设置全局日志实现执行并打印sql语句,包括设置日志级别、实现自定义Logger接口以及如何使用GORM的默认logger,通过这些... 目录gorm中的自定义日志gorm中日志的其他操作日志级别Debug自定义 Loggergorm中的

Go路由注册方法详解

《Go路由注册方法详解》Go语言中,http.NewServeMux()和http.HandleFunc()是两种不同的路由注册方式,前者创建独立的ServeMux实例,适合模块化和分层路由,灵活性高... 目录Go路由注册方法1. 路由注册的方式2. 路由器的独立性3. 灵活性4. 启动服务器的方式5.