最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2020年10月20日 10:30:18   作者:智慧女孩要禿頭~  
這篇文章主要介紹了vue中解決微信html5原生ios虛擬鍵返回不刷新問題,本文給大家分享解決方法,通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

問題描述:

做微信h5頁面時(shí),經(jīng)過了微信授權(quán)才跳轉(zhuǎn)到一級默認(rèn)路由home.vue中,因此在home頁面時(shí)在IOS中底部會出現(xiàn)虛擬的返回鍵,安卓上不會出現(xiàn)。且在IOS點(diǎn)擊返回時(shí)會跳轉(zhuǎn)到home空白頁面不重新加載,但是在安卓機(jī)上點(diǎn)擊返回鍵會重新加載。

實(shí)現(xiàn)功能:

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

分析:

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

注意:

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

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

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

最終代碼:

home.vue

activated(){
  //在頁面中創(chuàng)建一個(gè) history 實(shí)體,當(dāng)實(shí)體改變時(shí)會觸發(fā)popstate事件,跳轉(zhuǎn)到當(dāng)前頁面,并重新加載當(dāng)前頁面
  window.history.pushState(null, 'ff', document.URL);
  window.addEventListener('popstate',this.reload,true)
 }
 
 //本來在deactivated中寫移除事件監(jiān)聽的,但是發(fā)現(xiàn)不能移除,可能這個(gè)生命周期是在路由跳轉(zhuǎn)完(keep-alive緩存的組件停用時(shí)調(diào)用)從而找不到那個(gè)this了,所以移除監(jiān)聽失敗。
 deactivated(){
   window.removeEventListener('popstate',this.reload,true)
 }
 
 //所以采用組件內(nèi)的路由守衛(wèi)beforeRouteLeave,成功解決了移除監(jiān)聽事件。
 beforeRouteLeave (to, from, next) {
  // 導(dǎo)航離開該組件的對應(yīng)路由時(shí)調(diào)用
  window.removeEventListener('popstate',this.reload,true) //這個(gè)一定要寫到next()前面
  next()
 }
methods:{
reload(){
  window.location.reload()//重新加載
 }
}

main.js

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

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

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

相關(guān)文章

  • 2023年最新的vue.js下載和安裝的3種方法詳解

    2023年最新的vue.js下載和安裝的3種方法詳解

    這篇文章主要介紹了2023年最新的vue.js下載和安裝的3種方法,每種方法結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • 一步一步實(shí)現(xiàn)Vue的響應(yīng)式(對象觀測)

    一步一步實(shí)現(xiàn)Vue的響應(yīng)式(對象觀測)

    這篇文章主要介紹了一步一步實(shí)現(xiàn)Vue的響應(yīng)式(對象觀測),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Vue2.0點(diǎn)擊切換類名改變樣式的方法

    Vue2.0點(diǎn)擊切換類名改變樣式的方法

    今天小編就為大家分享一篇Vue2.0點(diǎn)擊切換類名改變樣式的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • Vue中使用jsencrypt進(jìn)行RSA非對稱加密的操作方法

    Vue中使用jsencrypt進(jìn)行RSA非對稱加密的操作方法

    這篇文章主要介紹了Vue中使用jsencrypt進(jìn)行RSA非對稱加密,在這里需要注意要加密的數(shù)據(jù)必須是字符串,對Vue?RSA非對稱加密相關(guān)知識感興趣的朋友一起看看吧
    2022-04-04
  • vue2 前端搜索實(shí)現(xiàn)示例

    vue2 前端搜索實(shí)現(xiàn)示例

    本篇文章主要介紹了vue2 前端搜索實(shí)現(xiàn)示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-02-02
  • vue頁面params傳值的坑及解決

    vue頁面params傳值的坑及解決

    這篇文章主要介紹了vue頁面params傳值的坑及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • vue?el-input設(shè)置必填提示功能(單個(gè)與多個(gè))

    vue?el-input設(shè)置必填提示功能(單個(gè)與多個(gè))

    有的功能需要設(shè)置必填項(xiàng),當(dāng)然也需要判斷是不是添上了,下面這篇文章主要給大家介紹了關(guān)于vue?el-input設(shè)置必填提示功能(單個(gè)與多個(gè))的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • 最新評論

    铜鼓县| 新竹县| 松溪县| 浦江县| 林州市| 左云县| 吉林市| 奉节县| 错那县| 江山市| 临洮县| 繁昌县| 澄迈县| 清丰县| 南陵县| 湘乡市| 阿瓦提县| 银川市| 兴义市| 玉屏| 南木林县| 宣城市| 河南省| 康保县| 资讯 | 翁牛特旗| 恭城| 崇仁县| 桓仁| 乌拉特中旗| 郁南县| 西安市| 陆丰市| 称多县| 康平县| 大化| 得荣县| 南城县| 临猗县| 博白县| 合肥市|