一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服務器之家 - 編程語言 - JavaScript - vue中解決微信html5原生ios虛擬鍵返回不刷新問題

vue中解決微信html5原生ios虛擬鍵返回不刷新問題

2021-11-01 16:05智慧女孩要禿頭~ JavaScript

這篇文章主要介紹了vue中解決微信html5原生ios虛擬鍵返回不刷新問題,本文給大家分享解決方法,通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

問題描述:

做微信h5頁面時,經過了微信授權才跳轉到一級默認路由home.vue中,因此在home頁面時在IOS中底部會出現虛擬的返回鍵,安卓上不會出現。且在IOS點擊返回時會跳轉到home空白頁面不重新加載,但是在安卓機上點擊返回鍵會重新加載。

實現功能:

解決IOS問題(在home頁面點返回時路由還是在home頁面,并完成重新加載)

分析:

需要在進入頁面時加入監聽,并在頁面離開時移除監聽。因為home頁面是個滾動列表,所以我采用了keep-alive路由緩存,所以不能在created()和beforeDestroy()生命周期中寫,因此我在home.vue中加了組件內的守衛beforeRouteLeave ()在里面移除監聽,在activated()中添加監聽。
如果頁面沒有采用路由緩存,則監聽事件和移除事件可以在created()和beforeDestroy()這兩個生命周期函數中寫。

注意:

addEventListener()與removeEventListener()用于處理指定和刪除事件處理程序操作。
它們都接受3個參數:事件名、事件處理的函數和布爾值。
布爾值參數是true,表示在捕獲階段調用事件處理程序;
如果是false,表示在冒泡階段調用事件處理程序。

相同事件綁定和解除,需要使用共用函數;如果removeEventListener不生效,可以看看這篇文章:https://blog.csdn.net/amyleeYMY/article/details/83382741

//監聽返回按鈕,重新加載當前頁面
window.history.pushState(state, title, utl)//在頁面中創建一個 history 實體,直接添加到歷史記中。
參數:state:存儲一個對象,可以添加相關信息,可以使用 history.state 讀取其中的內容。
title:歷史記錄的標題(目前瀏覽器不支持)。
url:創建的歷史記錄的鏈接。進行歷史記錄操作時會跳轉到該鏈接。

最終代碼:

home.vue

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
activated(){
  //在頁面中創建一個 history 實體,當實體改變時會觸發popstate事件,跳轉到當前頁面,并重新加載當前頁面
  window.history.pushState(null, 'ff', document.URL);
  window.addEventListener('popstate',this.reload,true)
 }
 
 //本來在deactivated中寫移除事件監聽的,但是發現不能移除,可能這個生命周期是在路由跳轉完(keep-alive緩存的組件停用時調用)從而找不到那個this了,所以移除監聽失敗。
 deactivated(){
   window.removeEventListener('popstate',this.reload,true)
 }
 
 //所以采用組件內的路由守衛beforeRouteLeave,成功解決了移除監聽事件。
 beforeRouteLeave (to, from, next) {
  // 導航離開該組件的對應路由時調用
  window.removeEventListener('popstate',this.reload,true) //這個一定要寫到next()前面
  next()
 }
methods:{
reload(){
  window.location.reload()//重新加載
 }
}

main.js

?
1
2
3
4
import {Component} from "vue-property-decorator";
Component.registerHooks([
 'beforeRouteLeave',
]);

就這樣成功的解決IOS返回不刷新問題~歡迎小伙伴來交流

到此這篇關于vue中解決微信html5原生ios虛擬鍵返回不刷新問題的文章就介紹到這了,更多相關微信html5原生ios虛擬鍵返回不刷新內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/weixin_44824839/article/details/109163614

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日韩欧美亚洲一区精选 | 日本人在线看片 | 亚洲精品国精品久久99热 | 亚洲高清在线精品一区 | 桃色导航 | 美女翘臀内疯狂进出 | 欧美成人乱弄视频 | 久久午夜夜伦痒痒想咳嗽P 久久无码AV亚洲精品色午夜麻豆 | 波多野结衣在线中文字幕 | 亚洲国产综合久久精品 | 嫩草成人国产精品 | 国内视频一区二区三区 | 2019天天干夜夜操 | 私人家庭影院5577 | 国产精自产拍久久久久久 | 国产精品高清视亚洲一区二区 | 天天综合天天影视色香欲俱全 | nhdta系列媚药系列 | 2020中文字幕 | 女教师被学生糟蹋三天 | a级影视| 性欧美f | 久久re这里精品23 | 美国video | 手机在线观看国产精选免费 | 亚洲欧美韩国日产综合在线 | 亚洲天堂网在线观看视频 | 我把寡妇日出水好爽 | 日本卡一卡2卡3卡4精品卡无人区 | 久久精品国产在热亚洲完整版 | 欧美日韩国产手机在线观看视频 | 亚洲卡一卡2卡三卡4麻豆 | 色视频国产 | 青青青久在线视频免费观看 | 99pao在线视频精品免费 | 五月天精品视频播放在线观看 | 午夜办公室 | 岛国a香蕉片不卡在线观看 荡女淫春2古装 | 国产农村乱子伦精品视频 | 视频免费在线 | 爱情岛论坛亚洲永久入口口 |