vue中的路由监听,在当前页面监听路由的改变:beforeRouteEnter等
前言:应用场景,我们需要在进入这个页面前判断,他上一个页面是不是我们允许的a页面,不是的话给跳走,是的话可以进入,或者是离开这个页面判断,他去的是否是我们允许的页面,不是则拦截。分为三个函数,和created是同级的,第一:beforeRouteEnter ,拦截路由进入拿到的to,form的格式具体使用:beforeRouteEnter(to, from, next) {console.log(
·
前言:
应用场景,我们需要在进入这个页面前判断,他上一个页面是不是我们允许的a页面,不是的话给跳走,是的话可以进入,或者是离开这个页面判断,他去的是否是我们允许的页面,不是则拦截。
分为三个函数,和created是同级的,
第一:beforeRouteEnter ,拦截路由进入
拿到的to,form的格式
具体使用:
beforeRouteEnter(to, from, next) {
console.log(to)
console.log(from)
console.log(next)
if (from.name !== 'A') {
// vm 就是当前组件的实例相当于上面的 this,所以在 next 方法里你就可以把 vm 当 this 来用了。
next(vm => vm.$router.push({ name: 'B' }))
}
next()
},
第二:beforeRouteUpdate
//在当前路由改变,但是该组件被复用时调用
//对于一个带有动态参数的路径 /good/:id,在 /good/1 和 /good/2 之间跳转的时候,
// 由于会渲染同样的good组件,因此组件实例会被复用。而这个钩子就会在这个情况下被调用。
beforeRouteUpdate(to, from, next) {
// 可以访问组件实例 `this`
console.log(this, 'beforeRouteUpdate'); //当前组件实例
console.log(to, '组件独享守卫beforeRouteUpdate第一个参数');
console.log(from, '组件独享守beforeRouteUpdate卫第二个参数');
console.log(next, '组件独享守beforeRouteUpdate卫第三个参数');
next();
},
第三:beforeRouteLeave // 导航离开该组件的对应路由时调用
beforeRouteLeave(to, from, next) {
// 可以访问组件实例 `this`
console.log(this, 'beforeRouteLeave'); //当前组件实例
console.log(to, '组件独享守卫beforeRouteLeave第一个参数');
console.log(from, '组件独享守卫beforeRouteLeave第二个参数');
console.log(next, '组件独享守卫beforeRouteLeave第三个参数');
next();
}
到此结束
更多推荐
已为社区贡献102条内容
所有评论(0)