缓存滚动位置:解决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()
	},
}
相关推荐
LSL666_1 小时前
1.3 云服务器安装和使用Redis
数据库·redis·缓存
LSL666_1 小时前
1.4 Redis服务端和客户端
数据库·redis·缓存
LSL666_1 小时前
1.7 Redis多数据库
数据库·redis·缓存
一次旅行2 小时前
缓存介绍和总结
缓存·测试总结
全栈前端老曹3 小时前
【Redis】 监控与慢查询日志 —— slowlog、INFO 命令、RedisInsight 可视化监控
前端·数据库·redis·缓存·全栈·数据库监控·slowlog
code袁3 小时前
基于Springboot+Vue的家教小程序的设计与实现
vue.js·spring boot·小程序·vue·家教小程序
学到头秃的suhian6 小时前
Redis分布式锁
java·数据库·redis·分布式·缓存
番茄去哪了6 小时前
Redis零基础入门
数据库·redis·缓存
知识即是力量ol6 小时前
口语八股——Redis 面试实战指南(二):缓存篇、分布式锁篇
java·redis·缓存·面试·分布式锁·八股
Re.不晚7 小时前
Redis——缓存【缓存穿透、缓存雪崩、缓存击穿】
数据库·redis·缓存