久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術文章
文章詳情頁

vue監聽瀏覽器原生返回按鈕,進行路由轉跳操作

瀏覽:81日期:2022-11-26 10:19:17

今天測試給我報了個bug說點擊瀏覽器返回頁數據顯示的不對,我查了半天原因:需要監聽瀏覽器的回退按鈕,并阻止其默認事件。

具體操作方法如下:

1、掛載完成后,判斷瀏覽器是否支持popstate

mounted(){ if (window.history && window.history.pushState) { history.pushState(null, null, document.URL); window.addEventListener(’popstate’, this.cancel, false); } },

2、頁面銷毀時,取消監聽。否則其他vue路由頁面也會被監聽

destroyed(){ window.removeEventListener(’popstate’, this.cancel, false); }

3、將監聽操作寫在methods里面,removeEventListener取消監聽內容必須跟開啟監聽保持一致,所以函數拿到methods里面寫

cancel: function() { if(this.orderId){ this.$router.push({ name:'orderList', params: {id:this.orderId},}); }else{ this.$router.go(-1); } },

補充知識:vue-router組件內導航守衛判斷返回按鈕

組件內導航守衛會出現無法攔截$router.go(-1)或者物理返回按鈕,在攔截函數外包裹setTimeout即可。具體原因還未發現。

setTimeout(() => { this.$confirm(’編輯的頁面布局尚未保存,確定離開?’, ’提示’, { confirmButtonText: ’確定’, cancelButtonText: ’取消’, type: ’warning’ }).then(() => { next() return }).catch(() => { this.$message({ type: ’info’, message: ’已取消’ }) next(false) return }) }, 500)

以上這篇vue監聽瀏覽器原生返回按鈕,進行路由轉跳操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Vue
主站蜘蛛池模板: 东城区| 伊宁县| 英德市| 固原市| 墨脱县| 桃园县| 莲花县| 都江堰市| 蓬莱市| 南乐县| 富锦市| 墨竹工卡县| 呼伦贝尔市| 昆山市| 珠海市| 舟山市| 凭祥市| 鄂尔多斯市| 淳化县| 广安市| 迭部县| 诸暨市| 滁州市| 禹州市| 伊宁市| 泰顺县| 永春县| 永济市| 交城县| 周口市| 夏河县| 雅安市| 称多县| 萝北县| 海阳市| 河津市| 清河县| 白山市| 乌海市| 泾阳县| 喀喇沁旗|