返回介绍

11. 路由滚动行为

发布于 2024-08-03 16:38:34 字数 1964 浏览 0 评论 0 收藏 0

路由滚动行为

使用前端路由,当切换到新路由时,想要页面滚到顶部,或者是保持原先的滚动位置,就像重新加载页面那样。vue-router 可以自定义路由切换时页面如何滚动。

当创建一个 Router 实例,你可以提供一个 scrollBehavior 方法

const router = createRouter({
  history: createWebHistory(),
  scrollBehavior: (to, from, savePosition) => {
    /* scrollBehavior 返回滚动位置的对象信息为 { left: number, top: number } */

    // 写死
    //return {
    //  top: 500
    //}

    //return new Promise((r) => {
    //  setTimeout(() => {
    //    r({
    //      top: 10000
    //    })
    //  }, 2000);
    //})


    // 使用记录的值
    if(savePosition) {
      return savePosition
    } else {
      return {
        top: 0
      }
    }

  },

scrollBehavior 方法接收 tofrom 路由对象。第三个参数 savedPosition 当且仅当 popstate 导航 (通过浏览器的 前进/后退 按钮触发) 时才可用。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文