如何在 Vue Router 里实现记住浏览器页面的滚动位置

来源 | https://www.cnblogs.com/classlate/archive/2021/11/02/15501987.html
路由出口
<div class="main"><!-- 包裹`<keep-alive>` --><keep-alive><router-view></router-view></keep-alive></div>
页面组件
export default {data(){scrollTop: 0, // 储存滚动位置},activated() {// 进入该组件后读取数据变量设置滚动位置// 注意, 此处由页面是否具有 DTD (如: `<!DOCTYPE html>`), 决定具体选择, 详见参考资料document.documentElement.scrollTop = this.scrollTop;// document.body.scrollTop = this.scrollTop;},beforeRouteLeave(to, from, next) {// 离开组件时保存滚动位置// 注意, 此时需调用路由守卫`beforeRouterLeave`而非生命周期钩子`deactivated`// 因为, 此时利用`deactivated`获取的 DOM 信息已经是新页面得了this.scrollTop = document.documentElement.scrollTop;next();},}
学习更多技能
 请点击下方公众号 
评论
