怎么在vue中利用beforeRouteLeave实现页面回退不刷新
这篇文章将为大家详细讲解有关怎么在vue中利用beforeRouteLeave实现页面回退不刷新,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
公司专注于为企业提供成都网站设计、做网站、微信公众号开发、商城开发,成都微信小程序,软件定制网站开发等一站式互联网企业服务。凭借多年丰富的经验,我们会仔细了解各客户的需求而做出多方面的分析、设计、整合,为客户设计出具风格及创意性的商业解决方案,创新互联建站更提供一系列网站制作和网站推广的服务。
beforeRouteLeave(to, from, next){ if(to.name !== 'page2'){ //判断是从哪个路由过来的,如果不是page2过来的需要做什么操作在这里实现 //如果是page2过来的,表明当前页面不需要刷新获取新数据,直接用之前缓存的数据即可 } next(); }
beforeRouteLeave后面的参数to是关于上个页面的信息,to.name就是上个路由名称。
这里有的人beforeRouteLeave方法无法触发可能是因为在page2页面中路由跳转写了router.go(-1) ,这里必须写具体跳转的路由名称
this.$router.push({name:'xxx'});
PS:
最近才做了一个功能一个路由下面有两个tab切换的页面,互相切换的时候需要保持之前选的参数,其实tab本身是有这个功能的,但是这个需求切换的时候是需要像后台发送请求,并且路由改变再切回来参数是要初始化的,所以想到了用beforerouteleave
beforerouteleave之前是一直听闻这个东西并没有用过,再网上看了,按照他们的用法并没有效果
然后就自己试了一下结果成功了
看我的目录结构
下面的migrationPeople和personalMigration分别是tab切换里面的两个内容
index里面是写tab切换的
我们只需要把beforeRouteLeave想写vue生命周期一样的写法写进来就好了,至于参数to,from是什么就给路由守卫是一样的,感兴趣的可以自己打印看一下
beforeRouteLeave(to,from,next){ if(sessionStorage.getItem('migrationPeopleDate')){ sessionStorage.removeItem('migrationPeopleDate') } if(sessionStorage.getItem('personalMigrationMan')){ sessionStorage.removeItem('personalMigrationMan') } next() },
关于怎么在vue中利用beforeRouteLeave实现页面回退不刷新就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
当前名称:怎么在vue中利用beforeRouteLeave实现页面回退不刷新
新闻来源:http://azwzsj.com/article/gcgsgh.html