缓存滚动位置:解决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()
	},
}
相关推荐
java1234_小锋13 小时前
Redis的热Key问题如何解决?
数据库·redis·缓存
鸽鸽程序猿13 小时前
【Redis】事务
数据库·redis·缓存
今晚务必早点睡15 小时前
Redis——快速入门第七课:Redis 为什么这么快?
数据库·redis·缓存
Kiyra20 小时前
Spring Boot Starter 自定义开发:封装中间件配置
spring boot·redis·后端·缓存·中间件·性能优化·rocketmq
微扬嘴角20 小时前
springcloud篇10-多级缓存
spring cloud·缓存
kobe_OKOK_21 小时前
Django缓存接口数据
python·缓存·django
爱学习的小道长1 天前
Ubuntu Python 使用 Redis 缓存
python·ubuntu·缓存
雪碧聊技术1 天前
用户登陆时,动态获取菜单图标
vue·elementplus·菜单图标icon
runepic1 天前
Vue3 + Element Plus 实现PDF附件上传下载
前端·pdf·vue
橘子真甜~1 天前
Reids命令原理与应用2 - Redis网络层与优化,pipeline,发布订阅与事务
数据库·redis·缓存·事务·发布订阅·lua脚本·acid特性