利用history和瀏覽器 刷新popstate狀態(tài) 去實(shí)現(xiàn)
每一次返回都會(huì)去歷史記錄回退 -1 所以就在進(jìn)入頁(yè)面之前 往歷史記錄里面多記錄一次當(dāng)前頁(yè)面的鏈接秧了。然后再回退的時(shí)候監(jiān)聽(tīng)刷新市俊,去做一些事情慰枕。
1、掛載完成后,判斷瀏覽器是否支持popstate
mounted(){
? // 如果支持 popstate 一般移動(dòng)端都支持了
? if (window.history && window.history.pushState) {
? ? // 往歷史記錄里面添加一條新的當(dāng)前頁(yè)面的url
? ? history.pushState(null, null, document.URL);
? ? // 給 popstate 綁定一個(gè)方法 監(jiān)聽(tīng)頁(yè)面刷新
? ? window.addEventListener('popstate', this.backChange, false);//false阻止默認(rèn)事件
? }
},
2、頁(yè)面銷毀時(shí),取消監(jiān)聽(tīng)琅催。否則其他vue路由頁(yè)面也會(huì)被監(jiān)聽(tīng)
? ? ?destroyed(){ window.removeEventListener('popstate', this.backChange, false);//false阻止默認(rèn)事件},
3、將監(jiān)聽(tīng)操作寫(xiě)在methods里面撒妈,removeEventListener取消監(jiān)聽(tīng)內(nèi)容必須跟開(kāi)啟監(jiān)聽(tīng)保持一致恢暖,所以函數(shù)拿到methods里面寫(xiě)
methods:{// BBBB.vue backChange() { const that = this; console.log("監(jiān)聽(tīng)到了");}