缓存滚动位置:解决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()
	},
}
相关推荐
.生产的驴15 小时前
DockerCompoe 部署注册中心Nacos 一键部署 单机+Mysql8
java·linux·运维·spring boot·缓存·docker·doc
小徐不会敲代码~16 小时前
Vue3 学习 5
前端·学习·vue
Hello World呀17 小时前
登录时,redis出现错误
数据库·redis·缓存
企鹅侠客17 小时前
第02章—先导基础篇:初识Redis
数据库·redis·缓存
全栈工程师修炼指南18 小时前
Nginx | HTTP 反向代理:当缓存失效时如何减轻后端(上游)服务压力?
运维·网络协议·nginx·http·缓存
典孝赢麻崩乐急18 小时前
Redis复习----------Redis超高性能的原因
数据库·redis·学习·缓存
典孝赢麻崩乐急19 小时前
Redis复习-------Redis事务
数据库·redis·缓存
橘子真甜~19 小时前
Reids命令原理与应用3 - Redis 主线程,辅助线程与存储原理
网络·数据库·redis·缓存·线程·数据类型·存储结构
妮妮喔妮19 小时前
强缓存和协商缓存的使用
缓存
此生只爱蛋19 小时前
【Redis】Zset 有序集合
数据库·redis·缓存