vue keepAlive 路由缓存保存页面滚动位置

route.js 文件
// 路由开关 keepAlive 控制是否开起缓存
{
    path: '/search', name: 'home-search', component: () => import("@/views/v4/Search.vue"), meta: { title: "搜索",  keepAlive: true },
  },
// 滚动高度保存
router.beforeEach((to, from, next) => {
  // 离开前记录滚动位置
   if(from.meta?.keepAlive) {
    sessionStorage.setItem(from.name, document.documentElement.scrollTop)
  }
  // 返回时恢复位置
  if(to.meta?.keepAlive) {
    document.documentElement.scrollTop = sessionStorage.getItem(to.name) || 0
  }
  next()
  
})
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容