缓存滚动位置:解决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()
	},
}
相关推荐
辛-夷8 小时前
TS封装axios
前端·vue.js·typescript·vue·axios
ttthe_MOon9 小时前
Redis Cluster集群模式和各种常见问题
数据库·redis·缓存
John_ToDebug10 小时前
浏览器极速兼容模式切换原理解析:多内核隔离、内核预热、状态缓存与异步渲染
chrome·缓存·webview
散一世繁华,颠半世琉璃10 小时前
高并发下的 Redis 优化:如何利用HeavyKeeper快速定位热 key
数据库·redis·缓存
deng-c-f11 小时前
Linux C/C++ 学习日记(56):用户态网络缓存区
学习·缓存
一叶飘零_sweeeet20 小时前
从单机到集群:Redis部署全攻略
数据库·redis·缓存
@AfeiyuO20 小时前
Vue3 矩形树图
vue·echarts
weixin_422555421 天前
ezuikit-js官网使用示例
前端·javascript·vue·ezuikit-js
Alluxio1 天前
Alluxio正式登陆Oracle云市场,为AI工作负载提供TB级吞吐量与亚毫秒级延迟
人工智能·分布式·机器学习·缓存·ai·oracle