【问题标题】:Vue Router go to top on new pageVue路由器在新页面上回到顶部
【发布时间】:2019-05-10 06:37:50
【问题描述】:

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

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

非常感谢您的帮助。

【问题讨论】:

    标签: javascript vue.js vue-router


    【解决方案1】:

    Vue 路由器有几个守卫和函数,在路由更改之前、期间和之后调用。在您的情况下,有一个专用函数允许您覆盖默认的滚动行为,名为scrollBehavior。它通过两个route objects 和一个包含 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;
    

    【讨论】:

    • 如何让这个向上滚动更流畅
    • 嘿@JenuelGanawed。评论部分不适用于新问题。如果您想提出与此问题相关的问题,可以在新问题中链接此问题并提出后续问题。
    • 对不起@Sumurai8
    • 这种方法对我来说失败了,错误为87:18 error 'to' is defined but never used no-unused-vars 87:22 error 'from' is defined but never used no-unused-vars 87:28 error 'savedPosition' is defined but never used no-unused-vars
    猜你喜欢
    • 1970-01-01
    • 2018-10-14
    • 2019-01-08
    • 2021-07-23
    • 1970-01-01
    • 2020-02-20
    • 2019-05-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多