这篇文章主要为大家展示了“如何解决vue2.0路由切换后页面滚动位置不变BUG的问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何解决vue2.0路由切换后页面滚动位置不变BUG的问题”这篇文章吧。
最近项目中遇到这样一个问题,vue切换路由,页面到顶端的滚动距离仍会保持不变。
<a href="javascript:;" rel="external nofollow" class="btn btn01" @click="useRightNow">立即试用</a>
<router-link class="db" to="/user">个人中心</router-link>
useRightNow(){
if(判断用户存在){
this.$router.push('/user')
}else{
this.$router.push("/login")
}
}
解决办法很简单,如下,直接监测watch路由变化,然后将body的滚动距离scrollTop赋值为0。
export default {
watch:{
'$route':function(to,from){
document.body.scrollTop = 0;
document.documentElement.scrollTop = 0;
}
}
}
补充: hash模式下才会导致上述问题,history模式下vue官网有更好的处理方法。
以上是“如何解决vue2.0路由切换后页面滚动位置不变BUG的问题”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!