vue返回上一页面时回到原先滚动的位置的方法


Posted in Javascript onDecember 20, 2018

项目结束,测试时发现在首页商品列表中,向上滑动几页后点击进入详情,从详情页面返回商品列表时,页面回到了最顶部,测试不通过说是用户体验不好,要求从哪里点击进去返回该页面时回到原先的滚动页面。
思路:因为vue是单页面应用,进入其他页面时会销毁该页面,用keep-alive不让其刷新,具体实现为:

(1).在App.vue中加入:

<template>
 <div id="app">
  <!--<router-view/>-->
  <!--页面返回不刷新-->
  <keep-alive>
   <router-view v-if="$route.meta.keepAlive"></router-view>
  </keep-alive>
  <router-view v-if="!$route.meta.keepAlive"></router-view>
 </div>
</template>

(2).index.js页面

export default new Router({
 routes: [{
  path: '/',
  name: 'index',
  component: index,
  meta: {
   keepAlive: true
  }
 },

这样在index.vue中,mounted方发只走一次,在浏览器上实现了返回原来滚动位置的目的。但是在手机上测试,发现没用,解决手机上实现目的的方法:

//在页面离开时记录滚动位置
beforeRouteLeave (to, from, next) {
  this.scrollTop = document.documentElement.scrollTop || document.body.scrollTop
  next()
 },
//进入该页面时,用之前保存的滚动位置赋值
beforeRouteEnter (to, from, next) {
  next(vm => {
   document.body.scrollTop = vm.scrollTop
  })
 },

OK!实现!!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery中的height innerHeight outerHeight区别示例介绍
Jun 15 Javascript
深入理解JavaScript系列(28):设计模式之工厂模式详解
Mar 03 Javascript
在linux中使用包管理器安装node.js
Mar 13 Javascript
Angular.js实现注册系统的实例详解
Dec 18 Javascript
JS实现获取来自百度,Google,soso,sogou关键词的方法
Dec 21 Javascript
ES6 系列之 WeakMap的使用示例
Aug 06 Javascript
Angular7中创建组件/自定义指令/管道的方法实例详解
Apr 02 Javascript
vue-cli 3.x配置跨域代理的实现方法
Apr 12 Javascript
微信小程序跳转到其他网页(外部链接)的实现方法
Sep 20 Javascript
JavaScript实现省市联动效果
Nov 22 Javascript
JavaScript Event Loop相关原理解析
Jun 10 Javascript
微信小程序实现日历小功能
Nov 18 Javascript
详解Vue.js自定义tipOnce指令用法实例
Dec 19 #Javascript
JavaScript创建对象方式总结【工厂模式、构造函数模式、原型模式等】
Dec 19 #Javascript
JavaScript链式调用实例浅析
Dec 19 #Javascript
浅谈vue后台管理系统权限控制思考与实践
Dec 19 #Javascript
如何为vue的项目添加单元测试
Dec 19 #Javascript
浅谈Angular7 项目开发总结
Dec 19 #Javascript
mockjs+vue页面直接展示数据的方法
Dec 19 #Javascript
You might like
PHP有序表查找之插值查找算法示例
2018/02/10 PHP
laravel 5.4 + vue + vux + element的环境搭配过程介绍
2018/04/26 PHP
PHP判断是否微信访问的方法示例
2019/03/27 PHP
php使用自带dom扩展进行元素匹配的原理解析
2020/05/29 PHP
defer属性导致引用JQuery的页面报“浏览器无法打开网站xxx,操作被中止”错误的解决方法
2010/04/27 Javascript
javascript 构造函数强制调用经验总结
2012/12/02 Javascript
jquery实现瀑布流效果分享
2014/03/26 Javascript
nodejs导出excel的方法
2015/06/30 NodeJs
详解JavaScript中数组的相关知识
2015/07/29 Javascript
简单谈谈javascript中的变量、作用域和内存问题
2015/08/30 Javascript
Angular 中 select指令用法详解
2016/09/29 Javascript
浅析JavaScript中break、continue和return的区别
2016/11/30 Javascript
JavaScript 巧学巧用
2017/05/23 Javascript
JavaScript面向对象继承原理与实现方法分析
2018/08/09 Javascript
Angular CLI 使用教程指南参考小结
2019/04/10 Javascript
解决layui弹出层layer的area过大被遮挡的问题
2019/09/21 Javascript
Vue中正确使用Element-UI组件的方法实例
2020/10/13 Javascript
[02:40]DOTA2英雄基础教程 巨牙海民
2013/12/23 DOTA
对pandas中to_dict的用法详解
2018/06/05 Python
Python Pandas 获取列匹配特定值的行的索引问题
2019/07/01 Python
搭建python django虚拟环境完整步骤详解
2019/07/08 Python
HTML5、Select下拉框右边加图标的实现代码(增进用户体验)
2017/10/16 HTML / CSS
Tirendo比利时:在线购买轮胎
2018/10/22 全球购物
J2EE面试题大全
2016/08/06 面试题
电大自我鉴定
2013/10/27 职场文书
师范毕业生个人求职信
2013/12/09 职场文书
文秘人员工作职责
2014/01/31 职场文书
食品流通安全承诺书
2014/05/22 职场文书
2014年行政部工作总结
2014/11/19 职场文书
2014年管理人员工作总结
2014/12/01 职场文书
中学教师读书笔记
2015/07/01 职场文书
2015初一年级组工作总结
2015/07/24 职场文书
学者《孟子》名人名言
2019/08/09 职场文书
几款流行的HTML5 UI框架比较(小结)
2021/04/08 HTML / CSS
Python+Tkinter打造签名设计工具
2022/04/01 Python
Golang 切片(Slice)实现增删改查
2022/04/22 Golang