vue-router作为vue全家桶重要组成部分,其重要性不必多说。在项目的开发中,当切换到新路由时,想要页面滚到顶部,或者是保持原先的滚动位置,就像重新加载页面那样。 我们可以再路由中添加滚动行为scrollBehavior。
import Vue from ‘vue’
import Router from ‘vue-router’
const Idex = ()=>import(’…’)
Vue.use(Router)
export default new Router{
mode:‘history’,
routes: […],
scrollBehavior (to, from, savedPosition) {
if (savedPosition) {
return savedPosition
// 返回 savedPosition,在按下 后退/前进 按钮时,就会像浏览器的原生表现那样
} else {
return { x: 0, y: 0 } // 对于所有路由导航,简单地让页面滚动到顶部。
}
// return 期望滚动到哪个的位置
}
}
scrollBehavior 方法接收 to 和 from 路由对象。第三个参数 savedPosition 当且仅当 popstate 导航 (通过浏览器的 前进/后退 按钮触发) 时才可用。