缓存滚动位置:解决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()
	},
}
相关推荐
2503_930123938 小时前
Redis群集的三种模式详解
数据库·redis·缓存
云和数据.ChenGuang8 小时前
openEuler 上安装与部署 Redis 的完整技术教程
数据库·redis·缓存
是萝卜干呀9 小时前
Redis
数据库·redis·缓存
妮妮喔妮10 小时前
redis热点key拆分和读多副本
数据库·redis·缓存
小雨下雨的雨10 小时前
第8篇:Redis缓存设计与缓存问题
java·redis·缓存
武子康12 小时前
Java-189 Guava Cache 源码剖析:LocalCache、Segment 与 LoadingCache 工作原理全解析
java·redis·后端·spring·缓存·guava·guava cache
@AfeiyuO12 小时前
封装ElementPlusIcons图标和系统应用内置图片为应用图标
vue
JELEE.12 小时前
Vue3复习笔记
vue.js·笔记·vue
欧克小奥13 小时前
Redis单节点分片集群实现
数据库·redis·缓存
不穿格子的程序员13 小时前
Redis篇1——Redis深度剖析:从 5 种对象到 6 大底层结构
数据库·redis·缓存·redis五大数据类型·redis六大数据结构