vue页面跳转后返回原页面初始位置方法


Posted in Javascript onFebruary 11, 2018

vue页面跳转到新页面之后,再由新页面返回到原页面时候若想返回调出原页面的初始位置,怎么来解决这个问题呢?首先我们应该在跳出页面时候记录下跳出的scrollY,返回原页面的时候在设置返回位置为记录下的scrolly即可,scrolly我用的是vuex状态管理器来保存的。整个环境是基于vue-cli搭建的

一、main.js里面配置vuex

//引用vuex 
import Vuex from 'vuex' 
Vue.use(Vuex)

二、main.js里面vuex状态管理

var store = new Vuex.Store({ 
 state: { 
 recruitScrollY:0 
 }, 
 getters: { 
 recruitScrollY:state => state.recruitScrollY 
 }, 
 mutations: { 
 changeRecruitScrollY(state,recruitScrollY) { 
 state.recruitScrollY = recruitScrollY 
 } 
 }, 
 actions: { 
 
 }, 
 modules: {} 
})

这里列举一个listview页面和详情页面,listview页面就是原始页面,listview页面跳转到详情页面,然后返回时候回到跳转到详情页面之前的位置,在listview页面编写代码

beforeRouteLeave(to, from, next) { 
 let position = window.scrollY //记录离开页面的位置 
 if (position == null) position = 0 
 this.$store.commit('changeRecruitScrollY', position) //离开路由时把位置存起来 
 next() 
 }, 
 watch: { 
 '$route' (to, from) { 
 if (to.name === 'NewRecruit') {//跳转的的页面的名称是"NewRecruit",这里就相当于我们listview页面,或者原始页面 
 let recruitScrollY = this.$store.state.recruitScrollY 
 window.scroll(0, recruitScrollY) 
 } 
 } 
 }

四、若要避免created生命周期的执行,可以使用缓存keepAlive,这里也分享一下

(1)App.vue template

<keep-alive v-if="$route.meta.keepAlive"> 
 <router-view></router-view> 
 </keep-alive> 
 <router-view v-if="!$route.meta.keepAlive"></router-view>

(2)router index.js

Vue.use(Router) 
 
const routerApp = new Router({ 
 routes: [{ 
 { 
 path: '/NewRecruit', 
 name: 'NewRecruit', 
 component: NewRecruit, 
 meta: { 
 keepAlive: true 
 } 
 }, 
 { 
 path: '/NewRecruitDesc/:id', 
 name: 'NewRecruitDesc', 
 component: NewRecruitDesc, 
 meta: { 
 keepAlive: true 
 } 
 }, 
 { 
 path: '/SubmitSucess', 
 name: 'SubmitSucess', 
 component: SubmitSucess, 
 meta: { 
 keepAlive: false 
 } 
 } 
 ] 
}) 
 
export default routerApp

以上这篇vue页面跳转后返回原页面初始位置方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
由浅到深了解JavaScript类
Sep 08 Javascript
20个非常有用的PHP类库 加速php开发
Jan 15 Javascript
使用js实现一个可编辑的select下拉列表
Feb 20 Javascript
JQuery对表格进行操作的常用技巧总结
Apr 23 Javascript
JavaScript 动态加载脚本和样式的方法
Apr 13 Javascript
javascript 玩转Date对象(实例讲解)
Jul 11 Javascript
vue.js移动端app实战1:初始配置详解
Jul 24 Javascript
基于vue实现分页效果
Nov 06 Javascript
vue2.0.js的多级联动选择器实现方法
Feb 09 Javascript
过滤器vue.filters的使用方法实现
Sep 18 Javascript
Vue实现简易计算器
Feb 25 Javascript
Vue中登录验证成功后保存token,并每次请求携带并验证token操作
Sep 08 Javascript
使用vue-router设置每个页面的title方法
Feb 11 #Javascript
解决使用Vue.js显示数据的时,页面闪现原始代码的问题
Feb 11 #Javascript
ajax请求+vue.js渲染+页面加载的示例
Feb 11 #Javascript
vue.js,ajax渲染页面的实例
Feb 11 #Javascript
Node.js使用MySQL连接池的方法实例
Feb 11 #Javascript
vue中引用阿里字体图标的方法
Feb 10 #Javascript
Express进阶之log4js实用入门指南
Feb 10 #Javascript
You might like
PHP daddslashes 使用方法介绍
2012/10/26 PHP
php setcookie函数的参数说明及其用法
2014/04/20 PHP
Yii中创建自己的Widget实例
2016/01/05 PHP
php 如何禁用eval() 函数实例详解
2016/12/01 PHP
一句话JavaScript表单验证代码
2009/08/02 Javascript
js 效率组装字符串 StringBuffer
2009/12/23 Javascript
JavaScript高级程序设计(第3版)学习笔记6 初识js对象
2012/10/11 Javascript
jquery仿QQ商城带左右按钮控制焦点图片切换滚动效果
2013/06/27 Javascript
jquery $.fn $.fx是什么意思有什么用
2013/11/04 Javascript
yepnope.js使用详解及示例分享
2014/06/23 Javascript
浅谈angular.js中实现双向绑定的方法$watch $digest $apply
2015/10/14 Javascript
jQuery实现边框动态效果的实例代码
2016/09/23 Javascript
微信小程序 触控事件详细介绍
2016/10/17 Javascript
JS实现的验证身份证及获取地区功能示例
2017/01/16 Javascript
vue2.0结合DataTable插件实现表格动态刷新的方法详解
2017/03/17 Javascript
浅谈Angular 的变化检测的方法
2018/03/01 Javascript
Vue中使用的EventBus有生命周期
2018/07/12 Javascript
JS实现横向轮播图(中级版)
2020/01/18 Javascript
JS中类的静态方法,静态变量,实例方法,实例变量区别与用法实例分析
2020/03/14 Javascript
[51:36]Optic vs Newbee 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python如何获取系统iops示例代码
2016/09/06 Python
Python实现查找二叉搜索树第k大的节点功能示例
2019/01/24 Python
python实现AES和RSA加解密的方法
2019/03/28 Python
Python Django框架单元测试之文件上传测试示例
2019/05/17 Python
tensorboard 可以显示graph,却不能显示scalar的解决方式
2020/02/15 Python
appium+python adb常用命令分享
2020/03/06 Python
Python使用requests xpath 并开启多线程爬取西刺代理ip实例
2020/03/06 Python
中专生的个人自我评价
2013/12/11 职场文书
公司清洁工岗位职责
2013/12/14 职场文书
安全教育心得体会
2013/12/29 职场文书
银行实习生的自我评价
2014/01/13 职场文书
行政文员实习自我鉴定范文
2014/09/14 职场文书
2015年校务公开工作总结
2015/05/26 职场文书
公司2015年终工作总结
2015/05/26 职场文书
如何用PHP websocket实现网页实时聊天
2021/05/26 PHP
redis protocol通信协议及使用详解
2022/07/15 Redis