全局后置路由守卫(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

相关文章

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.

springboot日期格式化全局LocalDateTime详解

《springboot日期格式化全局LocalDateTime详解》文章主要分析了SpringBoot中ObjectMapper对象的序列化和反序列化过程,并具体探讨了日期格式化问题,通过分析Spri... 目录分析ObjectMapper与jsonSerializer结论自定义日期格式(全局)扩展利用配置

关于Gateway路由匹配规则解读

《关于Gateway路由匹配规则解读》本文详细介绍了SpringCloudGateway的路由匹配规则,包括基本概念、常用属性、实际应用以及注意事项,路由匹配规则决定了请求如何被转发到目标服务,是Ga... 目录Gateway路由匹配规则一、基本概念二、常用属性三、实际应用四、注意事项总结Gateway路由

Weex入门教程之4,获取当前全局环境变量和配置信息(屏幕高度、宽度等)

$getConfig() 获取当前全局环境变量和配置信息。 Returns: config (object): 配置对象;bundleUrl (string): bundle 的 url;debug (boolean): 是否是调试模式;env (object): 环境对象; weexVersion (string): Weex sdk 版本;appName (string): 应用名字;

【vue3|第28期】 Vue3 + Vue Router:探索路由重定向的使用与作用

日期:2024年9月8日 作者:Commas 签名:(ง •_•)ง 积跬步以致千里,积小流以成江海…… 注释:如果您觉在这里插入代码片得有所帮助,帮忙点个赞,也可以关注我,我们一起成长;如果有不对的地方,还望各位大佬不吝赐教,谢谢^ - ^ 1.01365 = 37.7834;0.99365 = 0.0255 1.02365 = 1377.4083;0.98365 = 0.0006 说

集群环境下为雪花算法生成全局唯一机器ID策略

雪花算法是生成数据id非常好的一种方式,机器id是雪花算法不可分割的一部分。但是对于集群应用,让不同的机器自动产生不同的机器id传统做法就是针对每一个机器进行单独配置,但这样做不利于集群水平扩展,且操作过程非常复杂,所以每一个机器在集群环境下是一个头疼的问题。现在借助spring+redis,给出一种策略,支持随意水平扩展,肥肠好用。 大致策略分为4步: 1.对机器ip进行hash,对某一个(大于

fetch-event-source 如何通过script全局引入

fetchEventSource源码中导出了两种类型的包cjs和esm。但是有个需求如何在原生是js中通过script标签引呢?需要加上type=module。今天介绍另一种方法 下载源码文件: https://github.com/Azure/fetch-event-source.git 安装: npm install --save-dev webpack webpack-cli ts

Spring Boot全局异常捕捉!

项目中避免不了有异常! 为了用户体验,常常把异常捕获起来,展现一个友好的页面,提醒用户! 在pom.xml中: <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-insta