vue 返回上一页不刷新页面且滚动条位置不变

本文介绍如何在前端开发中实现页面不刷新及滚动条位置保持不变的技术方案。通过设置路由元信息和使用keep-alive组件来缓存页面状态,并利用会话存储记录和恢复滚动条位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.不刷新页面:

设置路由:

{ path: '/room/polling',name: 'roomList',component:()=>import("@/views/room/list.vue"),meta:{
    title:'title',
    keepAlive: true // 需要缓存
  }},

设置app.vue:

<keep-alive>
   <router-view v-if="$route.meta.keepAlive" class="container"></router-view>
</keep-alive>
<router-view v-if="!$route.meta.keepAlive" class="container"></router-view>

2.滚动条不变:

页面离开前存一下滚动条位置:

let dom = document.getElementById('dom1')
KitSession.setItem('top',dom.scrollTop)

页面返回时设置滚动条位置:

activated(){
    let top = KitSession.getItem('top')
    if(top!==null){
      let dom = document.getElementById('dom1')
      this.$nextTick(()=>{
        dom.scrollTop = top
      })
      KitSession.removeItem('top')
    }
  },

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值