Vue 全局前置路由守卫 全局后置路由守卫

一、位置

src/router/index.js

复制代码
const router = new VueRouter({
    routes:[
       
    ]
})

// 这个地方写全局前置路由守卫或 全局后置路由守卫

export default router
复制代码

一、全局前置路由守卫

1、时间:初始化时被调用,每次切换前被调用

2、应用场景:控制登录用户的权限

3、语法

router.beforeEach((to, from, next) => {
    console.log('beforeEach, 被调用')
    console.log('to', to)
    console.log('from', from)    
})

4、meta 属性

官方给我们设计的,可以添加自己的属性,在每个路由中

5、使用(权限)

a、在路由中添加meta来判断该路由是否参与

 {
    path:'news',
    component: NewsData,
    meta:{isAuth:true}
}

b、在beforeach中写逻辑

复制代码
// 初始化 和 切换路由器前被调用
router.beforeEach((to, from, next) => {
    if(to.meta.isAuth){
        // 参与部分
        if(localStorage.getItem('name')==='jojo'){
            next()
        }else{
            alert("用户名不对")
        }
    }else{
        // 不参与的直接next
        next()
    } 
})
复制代码

二、全局后置路由守卫

1、时间:初始化被调用,每次切换后被调用

2、应用场景:给每个组件切换标题

3、语法

//初始化时和切换路由后被调用 
router.afterEach((to, from) => {
    console.log('afterEach')
    console.log('to',to)
    console.log('from', from)
})

4、meta属性一样用

5、使用

a、在meta中给每个路由添加title

{
    path:'news',
    component: NewsData,
    meta:{isAuth:true, title:'新闻'},
}

b、写逻辑

//初始化时和  路由切换后被调用 
router.afterEach((to, from) => {
    document.title = to.meta.title || "学习"
    console.log('to',to)
    console.log('from', from)
})

注意:a切换b 这里的to仍指向b

posted @   市丸银  阅读(15)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
历史上的今天:
2020-01-08 java 数组
2020-01-08 java 方法重载
点击右上角即可分享
微信分享提示