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如何判断客户端是PC还是手持设备简单分析
Nov 22 Javascript
jQuery学习笔记(3)--用jquery(插件)实现多选项卡功能
Apr 08 Javascript
javascript中RegExp保留小数点后几位数的方法分享
Aug 13 Javascript
Microsfot .NET Framework4.0框架 安装失败的解决方法
Aug 14 Javascript
js 判断上传文件大小及格式代码
Nov 13 Javascript
一个检测表单数据的JavaScript实例
Oct 31 Javascript
深入理解vue路由的使用
Mar 24 Javascript
详解处理Vue单页面应用SEO的另一种思路
Nov 09 Javascript
基于vue如何发布一个npm包的方法步骤
May 15 Javascript
Flutter部件内部状态管理小结之实现Vue的v-model功能
Jun 11 Javascript
JS代码屏蔽F12,右键,粘贴,复制,剪切,选中,操作实例
Sep 17 Javascript
Javascript生成器(Generator)的介绍与使用
Jan 31 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中,文件上传
2006/12/06 PHP
解析php中heredoc的使用方法
2013/06/17 PHP
ThinkPHP添加更新标签的方法
2014/12/05 PHP
PHP代码实现爬虫记录――超管用
2015/07/31 PHP
PHP自动识别当前使用移动终端
2018/05/21 PHP
Laravel模糊查询区分大小写的实例
2019/09/29 PHP
js 动态文字滚动的例子
2011/01/17 Javascript
jquery foreach使用示例
2013/09/12 Javascript
使用firebug进行调试javascript的示例
2013/12/16 Javascript
jquery鼠标停止移动事件
2013/12/21 Javascript
js实现通用的微信分享组件示例
2014/03/10 Javascript
浅谈javascript 迭代方法
2015/01/21 Javascript
JS设置下拉列表框当前所选值的方法
2015/12/22 Javascript
举例讲解如何判断JavaScript中对象的类型
2016/04/22 Javascript
微信小程序 本地存储及登录页面处理实例详解
2017/01/11 Javascript
JS设计模式之惰性模式(二)
2017/09/29 Javascript
vue-router 路由基础的详解
2017/10/17 Javascript
elementui实现预览图片组件二次封装
2020/12/29 Javascript
wxPython使用系统剪切板的方法
2015/06/16 Python
python实现人人自动回复、抢沙发功能
2018/06/08 Python
Python 中的range(),以及列表切片方法
2018/07/02 Python
Python数据类型之List列表实例详解
2019/05/08 Python
tensorflow实现tensor中满足某一条件的数值取出组成新的tensor
2020/01/04 Python
解决django xadmin主题不显示和只显示bootstrap2的问题
2020/03/30 Python
关于django python manage.py startapp 应用名出错异常原因解析
2020/12/15 Python
HTML5新控件之日期和时间选择输入的实现代码
2018/09/13 HTML / CSS
俄罗斯的精英皮具:Wittchen
2018/01/29 全球购物
Christys’ Hats官网:英国帽子制造商
2018/11/28 全球购物
Marlies Dekkers内衣荷兰官方网店:荷兰奢侈内衣品牌
2020/03/27 全球购物
婚礼主持词开场白
2014/03/13 职场文书
年检委托书
2014/08/30 职场文书
四风查摆问题自查报告
2014/10/10 职场文书
三年级作文之趣事作文
2019/11/04 职场文书
Python趣味挑战之用pygame实现简单的金币旋转效果
2021/05/31 Python
Go语言并发编程 sync.Once
2021/10/16 Golang
Nginx内网单机反向代理的实现
2021/11/07 Servers