缓存滚动位置:解决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()
	},
}
相关推荐
起名时在学Aiifox34 分钟前
Vue 3 响应式缓存策略:从页面状态追踪到智能数据管理
前端·vue.js·缓存
ChineHe3 小时前
Redis数据类型篇002_详解Strings核心命令与存储结构
数据库·redis·缓存
ChineHe6 小时前
Redis数据类型篇001_数据类型梳理与选择指南
数据库·redis·缓存
musenh8 小时前
redis和jedis
数据库·redis·缓存
brave_zhao10 小时前
javaFx清空缓存动画特效
缓存
廋到被风吹走11 小时前
【Spring】IoC容器深度解析:Bean生命周期与循环依赖三级缓存
java·spring·缓存
Knight_AL11 小时前
Redis ZSet 实现排行榜(支持分数相同按时间顺序排序)
数据库·redis·缓存
冰冰菜的扣jio12 小时前
入门redis——让你的查询快到起飞
数据库·redis·缓存
论迹12 小时前
【Redis】-- key的过期策略
数据库·redis·缓存
Li_76953213 小时前
Redis 进阶(六)—— 集群
数据库·redis·缓存