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 复制或插入Html的实现方法小结
May 19 Javascript
jquery中EasyUI使用技巧小结
Feb 10 Javascript
jQuery遍历json中多个map的方法
Feb 12 Javascript
JavaScript动态加载样式表的方法
Mar 21 Javascript
JS使用oumousemove和oumouseout动态改变图片显示的方法
Mar 31 Javascript
jQuery实现响应鼠标背景变化的动态菜单效果代码
Aug 27 Javascript
老生常谈JavaScript 函数表达式
Sep 01 Javascript
D3.js封装文本实现自动换行和旋转平移等功能
Oct 14 Javascript
JavaScript动态绑定详解
Sep 14 Javascript
javascript基本常用排序算法解析
Sep 27 Javascript
浅谈如何通过node.js对数据进行MD5加密
May 16 Javascript
JavaScript eval()函数定义及使用方法详解
Jul 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 将excel导入mysql
2009/11/09 PHP
在IIS7.0下面配置PHP 5.3.2运行环境的方法
2010/04/13 PHP
PHP关联数组的10个操作技巧
2013/01/21 PHP
Linux下从零开始安装配置Nginx服务器+PHP开发环境
2015/12/21 PHP
Laravel框架路由设置与使用示例
2018/06/12 PHP
php对象工厂类完整示例
2018/08/09 PHP
JS类定义原型方法的两种实现的区别评论很多
2007/09/12 Javascript
toString()一个会自动调用的方法
2010/02/08 Javascript
JSON 和 JavaScript eval使用说明
2010/06/13 Javascript
使用Jquery打造最佳用户体验的登录页面的实现代码
2011/07/08 Javascript
JQuery 操作/获取table具体代码
2013/06/13 Javascript
js遍历、动态的添加数据的小例子
2013/06/22 Javascript
JavaScript里 ==与===区别详解
2016/08/16 Javascript
jQuery实现页面顶部下拉广告
2016/12/30 Javascript
JS使用插件cryptojs进行加密解密数据实例
2017/05/11 Javascript
利用hasOwnProperty给数组去重的面试题分享
2018/11/05 Javascript
mpvue开发音频类小程序踩坑和建议详解
2019/03/12 Javascript
js实现3D照片墙效果
2019/10/28 Javascript
vue项目创建步骤及路由router
2020/01/14 Javascript
js+canvas实现简单扫雷小游戏
2021/01/22 Javascript
[12:29]《一刀刀一天》之DOTA全时刻19:蝙蝠骑士田伯光再度不举
2014/06/10 DOTA
shelve  用来持久化任意的Python对象实例代码
2016/10/12 Python
Python有序查找算法之二分法实例分析
2017/12/11 Python
Python读写及备份oracle数据库操作示例
2018/05/17 Python
python 二维数组90度旋转的方法
2019/01/28 Python
tensorflow模型的save与restore,及checkpoint中读取变量方式
2020/05/26 Python
python如何获得list或numpy数组中最大元素对应的索引
2020/11/16 Python
python脚本定时发送邮件
2020/12/22 Python
介绍一下Java的安全机制
2012/06/28 面试题
武汉某公司的C#笔试题面试题
2015/12/25 面试题
大课间体育活动方案
2014/03/12 职场文书
北京导游词
2015/02/12 职场文书
设备技术员岗位职责
2015/04/11 职场文书
2015年中学校长工作总结
2015/05/19 职场文书
2015大学党建带团建工作总结
2015/07/23 职场文书
CSS Transition通过改变Height实现展开收起元素
2021/08/07 HTML / CSS