Vue中如何实现beforeRouteLeave页面回退不刷新,避免重复加载?
- 内容介绍
- 文章标签
- 相关推荐
本文共计484个文字,预计阅读时间需要2分钟。
在Vue路由中,若要实现路由切换回前一页面而不刷新功能,首选是使用keep-alive,但若页面不属于父子级关系,则需使用beforeRouteLeave钩子。示例代码如下:
javascriptbeforeRouteLeave(to, from, next) { if (to.name !=='page') { next(); }}
路由切换返回前一个路由时实现页面不刷新功能,首先想到的是keep-alive,但是页面不属于父子级关系,所以决定用beforeRouteLeave,下面贴代码
beforeRouteLeave(to, from, next){ if(to.name !== 'page2'){ //判断是从哪个路由过来的,如果不是page2过来的需要做什么操作在这里实现 //如果是page2过来的,表明当前页面不需要刷新获取新数据,直接用之前缓存的数据即可 } next(); }
beforeRouteLeave后面的参数to是关于上个页面的信息,to.name就是上个路由名称。
本文共计484个文字,预计阅读时间需要2分钟。
在Vue路由中,若要实现路由切换回前一页面而不刷新功能,首选是使用keep-alive,但若页面不属于父子级关系,则需使用beforeRouteLeave钩子。示例代码如下:
javascriptbeforeRouteLeave(to, from, next) { if (to.name !=='page') { next(); }}
路由切换返回前一个路由时实现页面不刷新功能,首先想到的是keep-alive,但是页面不属于父子级关系,所以决定用beforeRouteLeave,下面贴代码
beforeRouteLeave(to, from, next){ if(to.name !== 'page2'){ //判断是从哪个路由过来的,如果不是page2过来的需要做什么操作在这里实现 //如果是page2过来的,表明当前页面不需要刷新获取新数据,直接用之前缓存的数据即可 } next(); }
beforeRouteLeave后面的参数to是关于上个页面的信息,to.name就是上个路由名称。

