缓存滚动位置:解决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()
	},
}
相关推荐
彭于晏Yan29 分钟前
高并发系统缓存更新策略:四种方案深度剖析与最优选择
spring boot·redis·缓存
终端鹿1 小时前
Vue3 + Pinia 实战深度解析
vue
BugShare3 小时前
有趣味的登录页它踏着七彩祥云来了
vue·css3
不是株18 小时前
Redis(入门篇)
数据库·redis·缓存
qq_2816842119 小时前
Apt-Serve:基于混合缓存与自适应调度突破LLM推理KV缓存瓶颈,吞吐量提升8.8倍
缓存
1104.北光c°20 小时前
深入浅出 Elasticsearch:从搜索框到精准排序的架构实战
java·开发语言·elasticsearch·缓存·架构·全文检索·es
FakeOccupational21 小时前
【电路笔记 STM32】Cortex-M7 内核上的数据缓存结构图 + MPU内存保护单元 + Cache基本操作 + Cache&DMA 时序图
笔记·stm32·缓存
AMoon丶21 小时前
Golang--内存管理
开发语言·后端·算法·缓存·golang·os
Harriet嘉1 天前
vscode结合code buddy 和figma还原UI设计稿
vue·figma
小江的记录本1 天前
【Redis】Redis常用命令速查表(完整版)
java·前端·数据库·redis·后端·spring·缓存