缓存滚动位置:解决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()
	},
}
相关推荐
acaad5 小时前
Redis下载与安装(Windows)
数据库·redis·缓存
acheding6 小时前
Vue3 + AntV/X6 自定义节点实践:组件化节点与事件联动
前端框架·vue
超级种码7 小时前
Redis:Redis 数据类型
数据库·redis·缓存
产幻少年10 小时前
redis位图
数据库·redis·缓存
短剑重铸之日10 小时前
《7天学会Redis》Day 4 - 高可用架构设计与实践
数据库·redis·缓存
難釋懷11 小时前
认识Redis
数据库·redis·缓存
超级种码11 小时前
Redis:Redis脚本
数据库·redis·缓存
此生只爱蛋13 小时前
【Redis】事务
数据库·redis·缓存
橘子真甜~13 小时前
Reids命令原理与应用5 - Redis 主从同步与高可用集群
运维·网络·数据库·redis·缓存·redis集群·redis高可用
2501_9481949813 小时前
RN for OpenHarmony AnimeHub项目实战:放送时间表页面开发
数据库·redis·缓存