解决Vue页面跳转时滚动条记忆问题

本文介绍如何在Vue.js应用中实现路由切换时的滚动条记忆功能,确保二级页面加载时滚动条位于顶部,同时返回时能恢复之前的位置。通过使用``组件进行页面缓存,结合组件的生命周期钩子`beforeRouteLeave`和`activated`,记录并还原滚动条位置。此外,为二级页面添加代码使其在创建时滚动到顶部。
摘要由CSDN通过智能技术生成

问题:当跳转到二级页面时,滚动条存在记忆,无法显示页面顶部
要求:跳转二级页面时,滚动条自动滚动到顶部,返回上一页面时(滚动条)保持跳转之前的位置

1.在路由入口给组件(需要记忆滚动条的组件)添加缓存 <keep-alive></keep-alive>

<keep-alive include="HomeIndex">
      <router-view></router-view>
</keep-alive>

2.给需要记忆滚动条位置的组件添加组件路由监听和组件缓存的相关声明周期钩子,简而言之就是在路由跳转之前记录当前的滚动条位置,然后在页面返回时,也就是缓存激活的时候再还原滚动条的位置

   beforeRouteLeave(to, from, next) {
    // 记录滚动条位置
    this.scrollTop = document.documentElement?.scrollTop
    next()
  },
  // 组件激活时触发
  activated() {
    // 还原滚动条位置
    window.scrollTo(0, this.scrollTop)
  }

3.给二级页面(不需要记忆滚动条的页面,而且滚动条变化不希望影响来时的页面)添加滚动到顶部的操作

created() {
    // 滚动到页面顶部
    window.scrollTo(0, 0)
}
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值