页面回退返回前一个路由时触发beforeRouteLeave,判断上一个页面name来进行操作,也可用于页面的反向传值,页面跳转,下面贴代码
beforeRouteLeave(to, from, next){
console.log(to,from,next);
if(to.name === 'page2'){
//判断是从哪个路由过来的,如果是page2过来的,表明当前页面不需要刷新,直接用sessionStorage中存的selectNode即可
}else{
//如果不是page2过来的需要删除之前存储的数据
sessionStorage.removeItem('selectNode');
}
next(); //一定不能忘写!
}
beforeRouteLeave后面的参数to是关于上个页面的信息,to.name就是上个路由名称。
这里有的人beforeRouteLeave方法无法触发可能是因为在page2页面中路由跳转写了router.go(-1) ,这里必须写具体跳转的路由名称
this.$router.push({name:'xxx'});
这里要注意beforeRouteLeave函数应放在mounted,methods同级和生命周期写法一致。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。