日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > vue >内容正文

vue

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

發布時間:2023/12/31 vue 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vue页面跳转后返回原页面初始位置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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 = 0this.$store.commit('changeRecruitScrollY', position) //離開路由時把位置存起來next()},watch: {'$route' (to, from) {if (to.name === 'NewRecruit') {//跳轉的的頁面的名稱是"NewRecruit",這里就相當于我們listview頁面,或者原始頁面let recruitScrollY = this.$store.state.recruitScrollYwindow.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页面跳转后返回原页面初始位置的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。