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核心读书有感之语句
Feb 11 Javascript
js实现图片漂浮效果的方法
Mar 02 Javascript
JavaScript实现的链表数据结构实例
Apr 02 Javascript
jquery插件NProgress.js制作网页加载进度条
Jun 05 Javascript
jquery实现点击label的同时触发文本框点击事件的方法
Jun 05 Javascript
JS中多种方式创建对象详解
Mar 22 Javascript
JS区分浏览器页面是刷新还是关闭
Apr 17 Javascript
javascript比较语义化版本号的实现代码
Sep 09 Javascript
jquery精度计算代码 jquery指定精确小数位
Feb 06 Javascript
浅谈Node模块系统及其模式
Nov 17 Javascript
JS计算两个数组的交集、差集、并集、补集(多种实现方式)
May 21 Javascript
详解Node.js如何处理ES6模块
May 15 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 网页过期时间的控制代码
2009/06/29 PHP
PHP下利用header()函数设置浏览器缓存的代码
2010/09/01 PHP
基于PHP magic_quotes_gpc的使用方法详解
2013/06/24 PHP
常用的php图片处理类(水印、等比缩放、固定高宽)分享
2015/06/19 PHP
php如何获取Http请求
2020/04/30 PHP
document.all与WEB标准
2020/05/13 Javascript
一些实用性较高的js方法
2016/04/19 Javascript
移动端使用localStorage缓存Js和css文的方法(web开发)
2016/09/20 Javascript
简单实现jquery焦点图
2016/12/12 Javascript
微信小程序实战之仿android fragment可滑动底部导航栏(4)
2020/04/16 Javascript
NodeJs生成sitemap站点地图的方法示例
2019/06/11 NodeJs
jQuery子选择器与可见性选择器实例分析
2019/06/28 jQuery
解决VUE双向绑定失效的问题
2019/10/29 Javascript
解决vue与node模版引擎的渲染标记{{}}(双花括号)冲突问题
2020/09/11 Javascript
vantUI 获得piker选中值的自定义ID操作
2020/11/04 Javascript
Python深入学习之特殊方法与多范式
2014/08/31 Python
在Python的Django框架中实现Hacker News的一些功能
2015/04/17 Python
Python用模块pytz来转换时区
2016/08/19 Python
Python实现中一次读取多个值的方法
2018/04/22 Python
对Python3.6 IDLE常用快捷键介绍
2018/07/16 Python
详解python中sort排序使用
2019/03/23 Python
Python将视频或者动态图gif逐帧保存为图片的方法
2019/09/10 Python
pycharm运行程序时看不到任何结果显示的解决
2020/02/21 Python
Tensorflow tf.nn.depthwise_conv2d如何实现深度卷积的
2020/04/20 Python
基于python实现matlab filter函数过程详解
2020/06/08 Python
简单了解python关键字global nonlocal区别
2020/09/21 Python
英格兰足协官方商店:England Store
2019/07/12 全球购物
Blue Nile中国官网:全球知名的钻石和珠宝网络零售商
2020/03/22 全球购物
医生自荐信
2013/10/11 职场文书
老同学聚会感言
2014/02/23 职场文书
学术会议主持词
2014/03/17 职场文书
产品设计开发计划书
2014/05/07 职场文书
模特大赛策划方案
2014/05/28 职场文书
业绩倒数第一的检讨书
2014/09/24 职场文书
2016年校园植树节广播稿
2015/12/17 职场文书
就业指导讲座心得体会
2016/01/15 职场文书