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中的undefined,null,&quot;&quot;,0和false
Mar 08 Javascript
JavaScript 实现??打印?理
Apr 28 Javascript
jQuery-serialize()输出序列化form表单值的方法
Dec 26 Javascript
select、radio表单回显功能实现避免使用jquery载入赋值
Jun 08 Javascript
Javascript合并表格中具有相同内容单元格示例
Aug 11 Javascript
js控制鼠标事件移动及移出效果显示
Oct 19 Javascript
jQuery的框架介绍
May 11 Javascript
vue中如何引入jQuery和Bootstrap
Apr 10 jQuery
Angular2学习教程之ng中变更检测问题详解
May 28 Javascript
Angular 如何使用第三方库的方法
Apr 18 Javascript
node基于puppeteer模拟登录抓取页面的实现
May 09 Javascript
解决vue elementUI中table里数字、字母、中文混合排序问题
Jan 07 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中10个不常见却非常有用的函数
2010/03/21 PHP
php转换颜色为其反色的方法
2015/04/27 PHP
$.format,jquery.format 使用说明
2011/07/13 Javascript
nodejs win7下安装方法
2012/05/24 NodeJs
Extjs 3.3切换tab隐藏相应工具栏出现空白解决
2013/04/02 Javascript
jquery选择器-根据多个属性选择示例代码
2013/10/21 Javascript
js判断数据类型如判断是否为数组是否为字符串等等
2014/01/15 Javascript
jQuery实现的一个自定义Placeholder属性插件
2014/08/11 Javascript
JavaScript实现找出字符串中第一个不重复的字符
2014/09/03 Javascript
jquery图片倾斜层叠切换特效代码分享
2015/08/27 Javascript
JavaScript中数组的合并以及排序实现示例
2015/10/24 Javascript
JavaScript html5 canvas画布中删除一个块区域的方法
2016/01/26 Javascript
总结JavaScript的正则与其他语言的不同之处
2016/08/25 Javascript
jQuery中的siblings()是什么意思(推荐)
2016/12/29 Javascript
react高阶组件经典应用之权限控制详解
2017/09/07 Javascript
基于twbsPagination.js分页插件使用心得(分享)
2017/10/21 Javascript
vue+vuex+axios实现登录、注册页权限拦截
2018/03/09 Javascript
基于datepicker定义自己的angular时间组件的示例
2018/03/14 Javascript
vue侧边栏动态生成下级菜单的方法
2018/09/07 Javascript
仿iPhone通讯录制作小程序自定义选择组件的实现
2019/05/23 Javascript
如何解决js函数防抖、节流出现的问题
2019/06/17 Javascript
node.js中事件触发器events的使用方法实例分析
2019/11/23 Javascript
Selenium执行Javascript脚本参数及返回值过程详解
2020/04/01 Javascript
[01:14]2014DOTA2展望TI 剑指西雅图newbee战队专访
2014/06/30 DOTA
python 提取tuple类型值中json格式的key值方法
2018/12/31 Python
Python学习笔记之pandas索引列、过滤、分组、求和功能示例
2019/06/03 Python
CSS3盒子模型详解
2013/04/24 HTML / CSS
英国知名奢侈品包包品牌:Milli Millu
2016/12/22 全球购物
梅西百货澳大利亚:Macy’s Australia
2017/07/26 全球购物
韩国现代百货官网:Hmall
2018/03/21 全球购物
利物浦足球俱乐部官方商店(美国):Liverpool FC US
2019/10/09 全球购物
邹越感恩父母演讲稿
2014/08/28 职场文书
举起手来观后感
2015/06/09 职场文书
2016年小学端午节活动总结
2016/04/01 职场文书
MySQL 逻辑备份 into outfile
2022/05/15 MySQL
html网页引入svg图片的4种方式
2022/08/05 HTML / CSS