缓存滚动位置:解决keep-alive组件缓存滚动位置失败问题

怎样在vue中缓存组件?大家都知道,使用keep-alive组件即可,但是使用keep-alive缓存页面后,发现虽然页面缓存成功了,但是列表的滚动条又自动回到了最上方。

是的,keep-alive组件是不会缓存滚动位置的

怎样缓存滚动位置呢?这是我们这一章讲的问题。

核心思想是在路由钩子函数中将滚动位置记录和复写。

在对应位置加入如下代码即可:

其中scrollBar是要获取到滚动内容的父元素,也就是含有滚动条的元素

javascript 复制代码
export default {
	data() {
		scroll: 0, //记录浏览位置
	},
	beforeRouteEnter(to, from, next) {
		next(vm => {
			const scrollBar = document.getElementsByClassName('content-scroll-list-wrap')[0]
			scrollBar.scrollTop = vm.scroll
		})
	},
	beforeRouteLeave(to, from, next) {
		const scrollBar = document.getElementsByClassName('content-scroll-list-wrap')[0]
		this.scroll = scrollBar.scrollTop;
		next()
	},
}
相关推荐
_Jimmy_1 天前
Nacos的三层缓存是什么
java·缓存
q***33371 天前
Redis简介、常用命令及优化
数据库·redis·缓存
TT哇1 天前
【面经 每日一题】面试题16.25.LRU缓存(medium)
java·算法·缓存·面试
席万里1 天前
通过Golang订阅binlog实现轻量级的增量日志解析,并解决缓存不一致的开源库cacheflow
缓存·golang·开源
linuxxx1101 天前
Django 缓存详解与应用方法
python·缓存·django
IT教程资源D1 天前
[N_144]基于微信小程序在线订餐系统
mysql·vue·uniapp·前后端分离·订餐小程序·springboot订餐
熊文豪1 天前
Docker 缓存优化:通过 cpolar 内网穿透服务远程管理 Redis
redis·缓存·docker·cpolar
信仰_2739932432 天前
Redis红锁
数据库·redis·缓存
爬山算法2 天前
Redis(120)Redis的常见错误如何处理?
数据库·redis·缓存
Feng.Lee2 天前
聊聊缓存测试用例设计方案
缓存·测试用例