vue ,移動端H5,跳轉詳情再返回列表,保留滾動條位置

vue開發微信公眾號的h5頁面,

列表頁,帶翻頁加載。跳轉詳情頁,怎么能夠返回時,保留列表頁的頁碼和滾動條的位置?

嘗試了一種方法,所有代碼都在list頁面就可以完成,大家可以在真機上試試效果。

1.在點擊‘查看詳情,修改詳情’按鈕的時候,也就是進入詳情頁之前,先保留下來這個頁面的信息。

goAddEmployee(s_id,name){

let scroll = document.body.scrollTop || document.documentElement.scrollTop || window.pageXOffset;

? let listParam={

list:this.list,//當前的list

? ? page:this.page, //當前頁碼

? ? totalPage:this.totalPage,//總頁數

? ? scroll:scroll,//滾動條位置

? ? oldname:name,//當前編輯的這個用戶

}

localStorage.setItem("listParam", JSON.stringify(listParam));

this.$router.push({path:'/addemployee?depart='+this.departName+'&d_id='+departId })

},

2.在list的created方法里面,判斷是否有緩存,如果有,直接讀緩存且更新當前這條數據。如果沒有,請求第一頁的數據

listParam=JSON.parse(localStorage.getItem("listParam"))

if(listParam && listParam.hasOwnProperty('oldname')){

let oldname=listParam.oldname;

? this.uploadIndex(oldname);

}else{

this.getList(true);//?傳true,就是加載第一頁的意思。?getList方法里有判斷,如果flag=true,把list=【】,page=1,加載第一頁的數據。否則按照data中的page,請求對應頁碼的數據。

}

3.list頁面,加一個更新當前數據的方法。比如之前點擊的是‘李紅’這條數據,進入了詳情頁。編輯后,回到列表頁。從緩存中得到name=‘李紅’,用這個name當參數,調取一個查詢用戶詳情的方法。把詳情頁編輯后的頭像,手機號,身份證號,昵稱等等內容,更新為最新的。也就是把緩存的list,替換‘李紅’這一條數據。

uploadIndex(name){

let paramObj={

page:1,

? ? limit:10,

? ? name:name,//name從緩存中拿到

? ? d_id:departId

}

https.post('Staff/getStaffList', paramObj).then(res=>{? //這里調用的是查詢用戶詳情的接口,我寫的是list接口。因為我的list接口支持按name查詢。根據情況修改這個接口

let list=listParam.list; //緩存下來的list

? ? let data=res.data.list[0];//查詢個人詳情接口返回的數據

? ? list.map((n,index)=>{

if(n.people==name){ //在緩存list里,找是否有這個人,把這條數據,替換成最新的

list[index]=data;

? ? ? }

})

this.list=list; //更新全局data中的list數據。

? ? this.page=listParam.page;//更新全局data中的page。

? ? this.totalPage=listParam.totalPage;//更新全局data中的totalPage。

? ? let scroll=listParam.scroll;

? ? this.$nextTick(() => {

document.documentElement.scrollTop=scroll;//pc的移動端調試模式管用,真機上不行

document.body.scrollTop =scroll;//真機用這個!!!

//this.$refs.wrapper.scrollTop = scroll;//貌似沒啥用,不起作用

? ? ? localStorage.removeItem('listParam');//清除緩存,為了退出這個頁面后,不是從詳情頁回來,而是從首頁登錄頁進來的時候,能夠重新加載第一頁數據。

})

})

},

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。