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 相关文章推荐
前台js调用后台方法示例
Dec 02 Javascript
JavaScript自定义日期格式化函数详细解析
Jan 14 Javascript
javascript中闭包(Closure)详解
Jan 06 Javascript
javascript 中Cookie读、写与删除操作
Mar 29 Javascript
AngularJs+Bootstrap实现漂亮的计算器
Aug 10 Javascript
jQuery EasyUI结合zTree树形结构制作web页面
Sep 01 jQuery
vue.js todolist实现代码
Oct 29 Javascript
小程序实现左右来回滚动字幕效果
Dec 28 Javascript
浅谈 Webpack 如何处理图片(开发、打包、优化)
May 15 Javascript
小程序实现图片预览裁剪插件
Nov 22 Javascript
vue element 关闭当前tab 跳转到上一路由操作
Jul 22 Javascript
Vue2.0搭建脚手架
Mar 13 Vue.js
使用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基于堆栈实现的高级计算器功能示例
2017/09/15 PHP
PHP集成环境XAMPP的安装与配置
2018/11/13 PHP
解放web程序员的输入验证
2006/10/06 Javascript
js注意img图片的onerror事件的分析
2011/01/01 Javascript
javascript一些实用技巧小结
2011/03/18 Javascript
JavaScript数组深拷贝和浅拷贝的两种方法
2014/04/16 Javascript
bootstrap data与jquery .data
2014/07/07 Javascript
基于jQuery实现网页进度显示插件
2015/03/04 Javascript
Bootstrap每天必学之按钮(一)
2015/11/24 Javascript
Bootstrap3 input输入框插入glyphicon图标的方法
2016/05/16 Javascript
Bootstrap组件系列之福利篇几款好用的组件(推荐)
2016/06/23 Javascript
浅谈DOM的操作以及性能优化问题-重绘重排
2017/01/08 Javascript
jquery拖动改变div大小
2017/07/04 jQuery
JS实现自定义状态栏动画文字效果示例
2017/10/12 Javascript
vue实现仿淘宝结账页面实例代码
2017/11/08 Javascript
微信小程序实现流程进度的图样式功能
2018/01/16 Javascript
vue单页缓存存在的问题及解决方案(小结)
2018/09/25 Javascript
在Vue中使用axios请求拦截的实现方法
2018/10/25 Javascript
js实现上传图片并显示图片名称
2019/12/18 Javascript
为什么JavaScript中0.1 + 0.2 != 0.3
2020/12/03 Javascript
[00:34]DOTA2上海特级锦标赛 Spirit战队宣传片
2016/03/04 DOTA
Python判断操作系统类型代码分享
2014/11/22 Python
python执行等待程序直到第二天零点的方法
2015/04/23 Python
Empty test suite.(PyCharm程序运行错误的解决方法)
2018/11/30 Python
解决Python中list里的中文输出到html模板里的问题
2018/12/17 Python
Python 中Django验证码功能的实现代码
2019/06/20 Python
Python在线和离线安装第三方库的方法
2020/10/31 Python
Python第三方库安装缓慢的解决方法
2021/02/06 Python
Gap英国官网:Gap UK
2018/07/18 全球购物
德国最大的婴儿用品网上商店:Kidsroom.de(支持中文)
2020/09/02 全球购物
服务生自我鉴定
2014/01/22 职场文书
先进个人事迹材料
2014/01/25 职场文书
2015年领导班子工作总结
2015/05/23 职场文书
瞿秋白纪念馆观后感
2015/06/10 职场文书
党课主持词大全
2015/06/30 职场文书
恶魔之树最顶端的三颗果实 震震果实上榜,第一可以制造岩浆
2022/03/18 日漫