Vue Router 转到新页面的顶部

J.K*_*.Ko 9 javascript vue.js vue-router

现在,在我的 Vue 应用程序中,当我单击 a 时<router-link>,它会转到页面,但滚动级别与上一页相同(因为链接只是替换了组件)。

我想知道是否有一个vue-router功能可以让页面转到顶部,或者我需要使用其他一些 JS 编程来实现这一点。

非常感谢您的帮助。

Sum*_*ai8 22

Vue 路由器有几个守卫和函数,它们在路由改变之前、之中和之后被调用。在您的情况下,有一个专用函数可以让您覆盖默认的滚动行为,名为scrollBehavior. 它被两个路由对象和一个包含 x 和 y 坐标的对象调用,可能还有一个选择器,用于选择页面上的元素作为偏移量。

要使用它,请更改定义路由器的代码并添加scrollBehavior函数:

// src/router.js
const router = new VueRouter({
  // What you previously had here, such as routes

  scrollBehavior (to, from, savedPosition) {
    return { x: 0, y: 0 };
  }
});

export default router;
Run Code Online (Sandbox Code Playgroud)

  • 嘿@JenuelGanawed。评论部分不适用于新问题。如果您想提出与此问题相关的问题,您可以在新问题中链接此问题并提出后续问题。 (2认同)
  • 平滑滚动 -&gt; https://router.vuejs.org/guide/advanced/scroll-behavior.html#smooth-scrolling (2认同)