vue中进入详情页记住滚动位置的方法(keep-alive)


Posted in Javascript onSeptember 21, 2018

> 有时业务提出这样一个需求 就是从商品页面进入到列表详情页 要保存当前滚动的位置,这里我就想到了keep-alive

1.首先在路由中引入需要的模块

{ 
path: ‘/scrollDemo', 
name: ‘scrollDemo', 
meta: { 
keepAlive: true // 需要缓存 
}, 
component: resolve => { require([‘../view/scrollDemo.vue'], resolve) } 
}

2.在App.vue中设置缓存组件

<keep-alive>  // 缓存组件跳转的页面
    <router-view v-if="$route.meta.keepAlive" class="ui-view" transition-mode="out-in"></router-view>
  </keep-alive> 

 // 非缓存组件跳转页面
 <router-view v-if="!$route.meta.keepAlive" class="ui-view" transition-mode="out-in"></router-view>

3.在页面注册对应的事件

1. 在return中定义一个初始值 scroll

2. 在mouted中 ,mouted中的方法代表dom已经加载完毕

window.addEventListener('scroll', this.handleScroll);

3.methods 用于存放页面函数

handleScroll () {
    this.scroll = document.documentElement && document.documentElement.scrollTop

    console.log(this.scroll)
   }

4. activated 为keep-alive加载时调用

activated() {
     if(this.scroll > 0){
      window.scrollTo(0, this.scroll);
      this.scroll = 0;
      window.addEventListener('scroll', this.handleScroll);
     }
  }

5.deactivated 页面退出时关闭事件 防止其他页面出现问题

deactivated(){
   window.removeEventListener('scroll', this.handleScroll);
  }

以上这篇vue中进入详情页记住滚动位置的方法(keep-alive)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS类定义原型方法的两种实现的区别评论很多
Sep 12 Javascript
jQuery select控制插件
Aug 17 Javascript
Javascript 刷新全集常用代码
Nov 22 Javascript
JS控制网页动态生成任意行列数表格的方法
Mar 09 Javascript
新手快速学习JavaScript免费教程资源汇总
Jun 25 Javascript
JavaScript动态改变div属性的实现方法
Jul 22 Javascript
JavaScript文档碎片操作实例分析
Dec 12 Javascript
学习使用AngularJS文件上传控件
Feb 16 Javascript
vue父组件通过props如何向子组件传递方法详解
Aug 16 Javascript
实现div内部滚动条滚动到底部和顶部的代码
Nov 15 Javascript
微信小程序用户拒绝授权的处理方法详解
Sep 20 Javascript
vue实现页面内容禁止选中功能,仅输入框和文本域可选
Nov 09 Javascript
vue 使某个组件不被 keep-alive 缓存的方法
Sep 21 #Javascript
解决vue keep-alive 数据更新的问题
Sep 21 #Javascript
vue axios基于常见业务场景的二次封装的实现
Sep 21 #Javascript
vue2使用keep-alive缓存多层列表页的方法
Sep 21 #Javascript
使用ng-packagr打包Angular的方法示例
Sep 21 #Javascript
基于vue中keep-alive缓存问题的解决方法
Sep 21 #Javascript
vue中前进刷新、后退缓存用户浏览数据和浏览位置的实例讲解
Sep 21 #Javascript
You might like
PHP中使用smarty生成静态文件的例子
2014/04/24 PHP
CI框架入门示例之数据库取数据完整实现方法
2014/11/05 PHP
PHP数据库表操作的封装类及用法实例详解
2016/07/12 PHP
JavaScript 原型链学习总结
2010/10/29 Javascript
基于jquery跨浏览器显示的file上传控件
2011/10/24 Javascript
jquery 按钮状态效果 正常、移上、按下
2013/08/12 Javascript
页面加载完后自动执行一个方法的js代码
2014/09/06 Javascript
纯javascript代码实现计算器功能(三种方法)
2015/09/07 Javascript
jquery获取url参数及url加参数的方法
2015/10/26 Javascript
javascript实现对表格元素进行排序操作
2015/11/18 Javascript
Node.js中使用socket创建私聊和公聊聊天室
2015/11/19 Javascript
基于JS如何实现类似QQ好友头像hover时显示资料卡的效果(推荐)
2016/06/09 Javascript
CSS+jQuery实现简单的折叠菜单
2016/12/20 Javascript
js实现鼠标左右移动,图片也跟着移动效果
2017/01/25 Javascript
微信小程序 开发之顶部导航栏实例代码
2017/02/23 Javascript
vue.js实现标签页切换效果
2018/06/07 Javascript
vue+echarts实现动态绘制图表及异步加载数据的方法
2018/10/17 Javascript
详解vue使用插槽分发内容slot的用法
2019/03/28 Javascript
jQuery创建折叠式菜单
2019/06/15 jQuery
javascript 原型与原型链的理解及实例分析
2019/11/23 Javascript
浅析python 内置字符串处理函数的使用方法
2014/06/11 Python
简单学习Python多进程Multiprocessing
2017/08/29 Python
获取Django项目的全部url方法详解
2017/10/26 Python
浅谈python 线程池threadpool之实现
2017/11/17 Python
解决python3中解压zip文件是文件名乱码的问题
2018/03/22 Python
解决 jupyter notebook 回车换两行问题
2020/04/15 Python
django使用多个数据库的方法实例
2021/03/04 Python
One.com挪威:北欧成长最快的网络托管公司
2016/11/19 全球购物
澳大利亚拥有最佳跳伞降落点和最好服务的跳伞项目运营商:Skydive Australia
2018/03/05 全球购物
WebSphere 应用服务器都支持哪些认证
2013/12/26 面试题
const char*, char const*, char*const的区别是什么
2014/07/09 面试题
《春笋》教学反思
2014/04/15 职场文书
婚礼父母答谢词
2015/01/04 职场文书
2015年农村党员公开承诺事项
2015/04/28 职场文书
俄罗斯十大城市人口排名,第三首都仅排第六,第二是北方首都
2022/03/20 杂记
使用Docker容器部署rocketmq单机的全过程
2022/04/03 Servers