使用前端路由,当切换到新路由时,想要页面滚到顶部,或者是保持原先的滚动位置,就像重新加载页面那样。 vue-router 能做到,而且更好,它让你可以自定义路由切换时页面如何滚动。
scrollBehavior 函数接收 to和 from 路由对象。第三个参数 savedPosition,只有当这是一个 popstate 导航时才可用(由浏览器的后退/前进按钮触发)。
该函数可以返回一个 ScrollToOptions 位置对象,表示期望滚动到哪个位置。
如下,将下面的代码写在项目中配置的router。表示进入页面后置顶。
import routes from './routes'
const router = createRouter({
routes,//routes是引入的,里面是路由和组件信息
// 注:scrollBehaviorhe和routes是平级的
scrollBehavior(to, from, savedPosition) {
// 始终滚动到顶部
return { top: 0 }
},
})