缓存滚动位置:解决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()
	},
}
相关推荐
萧曵 丶2 小时前
Redis在实际业务中的常见与高级用法详解
数据库·redis·缓存
谷新龙0013 小时前
redis扫盲
redis·缓存
ChineHe5 小时前
Redis入门篇001_Redis简介与特性
数据库·redis·缓存
困知勉行19855 小时前
Redis数据结构及其底层实现
数据库·redis·缓存
零度@6 小时前
Java-Redis 缓存「从入门到黑科技」2026 版
java·redis·缓存
小股虫6 小时前
缓存攻防战:在增长中台设计一套高效且安全的缓存体系
java·分布式·安全·缓存·微服务·架构
fjkxyl7 小时前
Redis 跳表技术博客:为什么不选用红黑树和 B+ 树
数据库·redis·缓存
钦拆大仁7 小时前
系统架构设计中的多级缓存以及缓存预热
缓存·架构设计
坐怀不乱杯魂8 小时前
Linux - 缓存利用率
linux·c++·缓存
toooooop88 小时前
在ThinkPHP8中实现缓存降级
redis·缓存·php·缓存降级