Vue router 路由守卫如何深入解析?
- 内容介绍
- 文章标签
- 相关推荐
本文共计702个文字,预计阅读时间需要3分钟。
目录
一、全局前置配置beforeEach
1.全局前置配置beforeEach
2.实现需求二、全局前置配置beforeEach
3.全局后置配置afterEach
1.修改title为自定义title
4.组件内守卫
1. beforeRouteEnter 2. beforeRouteLeave总结一、全局前置配置beforeEach
1.全局前置配置beforeEach
2.实现需求
二、全局前置配置beforeEach
3.全局后置配置afterEach
1.修改title为自定义title
4.组件内守卫
1. beforeRouteEnter 2. beforeRouteLeave目录
- 一、全局前置beforeEach
- 1.全局前置beforeEach
- 2.实现
- 二、需求二
- 三、全局后置守卫afterEach
- 1.修改title为自己的title
- 四、组件内守卫
- 1.beforeRouteEnter
- 2.beforeRouteLeave
- 总结
一、全局前置beforeEach
当 Local Storage 里面存储的 name 是 zhangsan 的时候, 点击消息才显示消息内容
1. 全局前置beforeEach
给router添加一个路由守卫 beforeEach
语法 :
router.beforeEach((to, from, next)=>{})
作用 : 初始化的时候 和 在每一次路由切换之前调用beforeEach里面的函数
参数 :
1.to : 目标路由
2.from : 跳转前的路由
3.next : 放行
2. 实现
二、需求二
如果有很多个路径都需要做出判断以后才跳转, 就需要写很多判断的代码, 判断结构就会很复杂
这时需要判断的路由里面就可以放一个meta标签
meta标签提供关于HTML文档的元数据 (元数据指用来描述数据的数据)
这时就可以使用meta里面的标记字段进行判断
三、全局后置守卫 afterEach
afterEach 和 beforeEach 使用方法基本一致.
区别就是afterEach没有next这个参数
1. 修改title为自己的title
给每个路由指定自己的title名称
const router = new VueRouter({ routes: [ { name: 'home', path: '/home', component: Home, meta: { title: "首页" }, children: [ { name: "xiaoxi", path: 'message', component: Message, meta: { title: "消息" }, children: [ { name: 'xiangqing', path: 'detail', component: Detail, meta: { isAuth: true, title: "消息详情" } } ] } ] }, { path: '/about', component: About, meta: { title: "关于" } } ] })
在 beforEach里面修改title名
router.afterEach((to, from) => { document.title = to.meta.title || "测试" })
四、组件内守卫
1. beforeRouteEnter
通过路由规则, 进入该组件时被调用
2. beforeRouteLeave
通过路由规则, 离开该组件时被调用
总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注自由互联的更多内容!
本文共计702个文字,预计阅读时间需要3分钟。
目录
一、全局前置配置beforeEach
1.全局前置配置beforeEach
2.实现需求二、全局前置配置beforeEach
3.全局后置配置afterEach
1.修改title为自定义title
4.组件内守卫
1. beforeRouteEnter 2. beforeRouteLeave总结一、全局前置配置beforeEach
1.全局前置配置beforeEach
2.实现需求
二、全局前置配置beforeEach
3.全局后置配置afterEach
1.修改title为自定义title
4.组件内守卫
1. beforeRouteEnter 2. beforeRouteLeave目录
- 一、全局前置beforeEach
- 1.全局前置beforeEach
- 2.实现
- 二、需求二
- 三、全局后置守卫afterEach
- 1.修改title为自己的title
- 四、组件内守卫
- 1.beforeRouteEnter
- 2.beforeRouteLeave
- 总结
一、全局前置beforeEach
当 Local Storage 里面存储的 name 是 zhangsan 的时候, 点击消息才显示消息内容
1. 全局前置beforeEach
给router添加一个路由守卫 beforeEach
语法 :
router.beforeEach((to, from, next)=>{})
作用 : 初始化的时候 和 在每一次路由切换之前调用beforeEach里面的函数
参数 :
1.to : 目标路由
2.from : 跳转前的路由
3.next : 放行
2. 实现
二、需求二
如果有很多个路径都需要做出判断以后才跳转, 就需要写很多判断的代码, 判断结构就会很复杂
这时需要判断的路由里面就可以放一个meta标签
meta标签提供关于HTML文档的元数据 (元数据指用来描述数据的数据)
这时就可以使用meta里面的标记字段进行判断
三、全局后置守卫 afterEach
afterEach 和 beforeEach 使用方法基本一致.
区别就是afterEach没有next这个参数
1. 修改title为自己的title
给每个路由指定自己的title名称
const router = new VueRouter({ routes: [ { name: 'home', path: '/home', component: Home, meta: { title: "首页" }, children: [ { name: "xiaoxi", path: 'message', component: Message, meta: { title: "消息" }, children: [ { name: 'xiangqing', path: 'detail', component: Detail, meta: { isAuth: true, title: "消息详情" } } ] } ] }, { path: '/about', component: About, meta: { title: "关于" } } ] })
在 beforEach里面修改title名
router.afterEach((to, from) => { document.title = to.meta.title || "测试" })
四、组件内守卫
1. beforeRouteEnter
通过路由规则, 进入该组件时被调用
2. beforeRouteLeave
通过路由规则, 离开该组件时被调用
总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注自由互联的更多内容!

