beforeRouteEnter
beforeRouteEnter 这个钩子中的from参数可以获得之前url的信息,再通过 next 传递回调来访问当前组件的实例。
data(){
return {
data: {},
}
},
beforeRouteEnter(to, from, next){
console.log(from);
next(vm => {
// 通过 `vm` 访问组件实例,将值传入newPath
//beforeRouteEnter守卫在导航确认前被调用,因此守卫不能访问 this
//在template里已经可以用this.newPath来获取到from所带的name值
vm.newPath = from.name
})
},
在控制台可以看到from参数所带的信息
路由跳转带参
在前一个页面的路由跳转函数里写入一个新的参数,query中分别携带id和path
//跳转对应设备详情页面
deviceInfo(record){
this.$router.push({name:'detailsDevice', query:{id:record.deviceId,path:'warning'}})
},
在所需要获得前页面的url的页面内,通过
v-if="this.$route.query.path === 'warning'"
就可以判断所跳转过来的页面是否为特定页面