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 24 Javascript
js 文件引入实现代码
Apr 23 Javascript
js隐藏与显示回到顶部按钮及window.onscroll事件应用
Jan 25 Javascript
jquery的总体架构分析及实现示例详解
Nov 08 Javascript
jquery带有索引按钮且自动轮播切换特效代码分享
Sep 15 Javascript
九种原生js动画效果
Nov 11 Javascript
学习使用AngularJS文件上传控件
Feb 16 Javascript
JavaScript必知必会(二) null 和undefined
Jun 08 Javascript
原生JS简单实现ajax的方法示例
Nov 29 Javascript
jquery实现文字单行横移或翻转(上下、左右跳转)
Jan 08 Javascript
Three.js加载外部模型的教程详解
Nov 10 Javascript
vue element-ui实现动态面包屑导航
Dec 23 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/21 PHP
PHP缓存技术的多种方法小结
2012/08/14 PHP
深入php之规范编程命名小结
2013/05/15 PHP
PHP常见数组排序方法小结
2018/08/20 PHP
laravel 框架配置404等异常页面
2019/01/07 PHP
Laravel框架源码解析之反射的使用详解
2020/05/14 PHP
ASP.NET jQuery 实例13 原创jQuery文本框字符限制插件-TextArea Counter
2012/02/03 Javascript
intro.js 页面引导简单用法 分享
2013/08/06 Javascript
Js保留小数点的4种效果实现代码分享
2014/04/12 Javascript
随鼠标移动的时钟非常漂亮遗憾的是只支持IE
2014/08/12 Javascript
jQuery中[attribute*=value]选择器用法实例
2014/12/31 Javascript
深入理解JavaScript系列(36):设计模式之中介者模式详解
2015/03/04 Javascript
jquery validate和jquery form 插件组合实现验证表单后AJAX提交
2015/08/26 Javascript
jquery 全选、全不选、反选效果的实现代码【推荐】
2016/05/05 Javascript
jQuery动态添加与删除tr行实例代码
2016/10/18 Javascript
three.js快速入门【推荐】
2017/01/21 Javascript
前端html中jQuery实现对文本的搜索功能并把搜索相关内容显示出来
2017/11/14 jQuery
vue-cli 引入、配置axios的方法
2018/05/08 Javascript
JS实现在线ps功能详解
2019/07/31 Javascript
TypeScript魔法堂之枚举的超实用手册
2020/10/29 Javascript
python之wxPython菜单使用详解
2014/09/28 Python
Python import自定义模块方法
2015/02/12 Python
Python递归遍历列表及输出的实现方法
2015/05/19 Python
Python发送http请求解析返回json的实例
2018/03/26 Python
python频繁写入文件时提速的方法
2019/06/26 Python
Python shelve模块实现解析
2019/08/28 Python
手机使用python操作图片文件(pydroid3)过程详解
2019/09/25 Python
Python 日期与时间转换的方法
2020/08/01 Python
浅析python中的del用法
2020/09/02 Python
Python基于tkinter canvas实现图片裁剪功能
2020/11/05 Python
接口中的方法可以是abstract的吗
2015/07/23 面试题
项目专员岗位职责
2013/12/04 职场文书
大学生职业生涯规划范文
2014/01/22 职场文书
单位委托书
2014/10/15 职场文书
体检通知范文
2015/04/21 职场文书
海贼王十大逆天果实 魂魂果实上榜,岩浆果实攻击力最强
2022/03/18 日漫