缓存滚动位置:解决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()
	},
}
相关推荐
BergerLee3 小时前
对不经常变动的数据集合添加Redis缓存
数据库·redis·缓存
Dylanioucn4 小时前
【分布式微服务云原生】掌握分布式缓存:Redis与Memcached的深入解析与实战指南
分布式·缓存·云原生
长路 ㅤ   5 小时前
cherry-markdown开源markdown组件详细使用教程
vue·markdown组件
Mudrock__11 小时前
前后端传输文件(图片)
vue·.net
wclass-zhengge14 小时前
Redis篇(最佳实践)(持续更新迭代)
redis·缓存·bootstrap
Dylanioucn15 小时前
【分布式微服务云原生】探索Redis:数据结构的艺术与科学
数据结构·redis·分布式·缓存·中间件
小小娥子1 天前
Redis的基础认识与在ubuntu上的安装教程
java·数据库·redis·缓存
DieSnowK1 天前
[Redis][集群][下]详细讲解
数据库·redis·分布式·缓存·集群·高可用·新手向
王小二(海阔天空)1 天前
个人文章合集 - 前端相关
前端·css·vue·jquery
PYSpring1 天前
数据结构-LRU缓存(C语言实现)
c语言·数据结构·缓存