Vue路由守卫

1.路由守卫

先说我的理解,路由守卫类似一个安保系统,要向进入园区,必须经过安保的同意,同意了就放行,继续操作,那么路由守卫也是一样的

包含 全局守卫 独享守卫 组件内守卫

1.1 全局守卫

应用于整个页面,处理对应的事件,分为前置守卫和后置守卫

  • to:进入到哪个路由去

  • from:从哪个路由离开

  • next:路由的控制参数,常用的有next(true)和next(false)

<!--1.定义组件-->
let comA ={
    data(){},
    template:``,
    created(){
    this.id = this.$route.params.id
    this.username = this.$route.params.username
    }
}
<!--2.定义路由-->
let router = new VueRouter({
    routes:
     [
      {path:'/user:id/username/:username',component: comA}
     ]
})
<!--4.绑定路由全局守卫 前置-->
router.beforeEach((to,from,next)=>{
    console.log('前置',to,from)
    next();
})
<!--绑定路由全局守卫 后置-->
router.afterEach((to,from)=>{
    console.log('后置',to,from);
})
<!--3.路由注册-->
router

1.2 路由独享守卫

该路由有自己的守卫任务,如该生产车间有自己的任务,保证自己车间的任务能够完成

官方的定义是:你可以在路由配置上直接定义beforEnter守卫,这些守卫和全局前置守卫的方法和参数是一样的

参数:
beforeEnter(to,from,next)
<!-- to 路由对象,要进入的目标
<!-- from 当前导航正要离开的路由
<!-- next 是否在守卫之后进行跳转-->
next()  所指路由
next(false) 中断当前路由
next('route') 跳转知道路由
next('error') 跳转错误路由
直接在配置信息上定义路由
let router = new VueRouter({
    routes:
        [
            path: '/user:id/username/:username',
            component:comA,
            name:'coma'
            beforeEnter:(to,from,next){
                next();
            },
            {
                path:'/comA',
                component:comB
            }
        ]
})
​
let vm = new Vue({
    el:'#app',
    data:{},
    methods:{},
    created(){},
    router
})

1.3 组件内守卫

通常用来禁止用户还未保存的情况下突然离开

beforeRouteEnter

路由进入之前
beforeRouteEnter(to,from,next){
    next()
}
路由更新之前
beforeRouteUpdate(to,form,next){
    this.id = to.params.id
    this.username = to.params.username
    next()
}
beforeRouterLeave(to,from,next){
    
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值