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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > vue >内容正文

vue

vue 商城浏览足迹_vue 移动端记录页面浏览位置的方法

發(fā)布時(shí)間:2024/3/13 vue 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vue 商城浏览足迹_vue 移动端记录页面浏览位置的方法 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

記錄一下本次項(xiàng)目我使用的方法,有更簡(jiǎn)單便捷的方法,歡迎交流

描述: 假設(shè)有a b c 頁(yè)面

從a頁(yè)面 到 b頁(yè)面 ,b頁(yè)面到c頁(yè)面

b到c頁(yè)面的時(shí)候需要記錄當(dāng)前b的瀏覽位置,c返回到b的時(shí)候滾動(dòng)到上次瀏覽的位置

b在返回a的時(shí)候,在從a進(jìn)入b 返回的是b的頂部(也就是不記錄瀏覽位置)

做法: 使用到了vuex ,beforeRouteLeave

1.首先在vuex中state定義一個(gè)變量來(lái)記錄當(dāng)前的瀏覽的位置

//state中定義數(shù)據(jù)

state: {

carrerTouScroll: {

height: '' //滾動(dòng)的距離

}

}

//mutations 操作state數(shù)據(jù)

mutations: {

setCarrerTouScroll (state, disdance) { //管理賽事 滾動(dòng)距離

state.carrerTouScroll.height = disdance

},

}

//使用getters 有的不加這句也可以,但是有時(shí)候不加就不行,所以還是加上吧

getters: {

getCarrerTou: state => state.carrerTouScroll

}

2.在需要的頁(yè)面中 我使用了beforeRouteLeave 來(lái)記錄沒(méi)有路由離開的時(shí)候當(dāng)前瀏覽的位置

beforeRouteLeave (to, from, next) { // 離開路由前

let that = this

if (to.meta.touFlag) {

let scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop

this.$store.commit('setCarrerTouScroll', scrollTop)

} else {

this.$store.commit('setCarrerTouScroll', 0)

}

next()

},

其中to.meta.touFlag 是我自己定義的,因?yàn)樾枰涗浀捻?yè)面很多,我覺(jué)的這樣比較方便,只需要在route 頁(yè)面加一個(gè)參數(shù)就好了

{

path: '/careerAddMainTeam',

name: 'CareerAddMainTeam',

component: CareerAddMainTeam,

meta: {

touFlag: true

}

},

當(dāng)然你也可以使用to.name ,如果需要跳轉(zhuǎn)頁(yè)面不多的話

beforeRouteLeave (to, from, next) { // 離開路由前

let that = this

if (to.name === 'CareerAddMainTeam') {

let scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop

this.$store.commit('setCarrerTouScroll', scrollTop)

} else {

this.$store.commit('setCarrerTouScroll', 0)

}

next()

},

3.最后一步就是在每次b頁(yè)面獲取完數(shù)據(jù)的時(shí)候使用$nextTick,讓頁(yè)面恢復(fù)到上次瀏覽的位置

this.$nextTick(() => {

this.scrollTop = this.$store.state.carrerTouScroll.height

document.documentElement.scrollTop = this.scrollTop

})

一定要在b頁(yè)面獲取完數(shù)據(jù)后使用nextTick,不然是沒(méi)有效果的

這次就記錄到這,如果有別的好方法,請(qǐng)指出

到此這篇關(guān)于vue 移動(dòng)端記錄頁(yè)面瀏覽位置的方法的文章就介紹到這了,更多相關(guān)vue 移動(dòng)端頁(yè)面瀏覽位置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

總結(jié)

以上是生活随笔為你收集整理的vue 商城浏览足迹_vue 移动端记录页面浏览位置的方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。