缓存滚动位置:解决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()
	},
}
相关推荐
码熔burning3 小时前
Redis 的三种高效缓存读写策略!
redis·缓存·mybatis
Armyyyyy丶13 小时前
Redis底层实现原理之五大基础结构
数据结构·redis·缓存
Volunteer Technology15 小时前
三高项目-缓存设计
java·spring·缓存·高并发·高可用·高数据量
2302_8097983219 小时前
【Redis】缓存的穿透、击穿和雪崩
数据库·redis·缓存
Listen-Y19 小时前
设计艺术~缓存结构设计
缓存
叫我阿柒啊20 小时前
从Java全栈到前端框架的全面实战:一次真实面试的深度解析
java·spring boot·缓存·微服务·消息队列·vue3·rest api
最好结果20 小时前
ruoyi系统-vue-elementui 表格单元格点击复制功能实现:实践与问题解决
vue
麦兜*1 天前
MongoDB 性能调优:十大实战经验总结 详细介绍
数据库·spring boot·mongodb·spring cloud·缓存·硬件架构
CHANG_THE_WORLD1 天前
C++ 并发编程指南 实现无锁队列
开发语言·c++·缓存·无锁队列·无锁编程
egoist20231 天前
[linux仓库]性能加速的隐形引擎:深度解析Linux文件IO中的缓冲区奥秘
linux·运维·开发语言·缓存·缓冲区