监听浏览器返回,可清除历史记录(移动端:手势返回)(vue)
生活随笔
收集整理的這篇文章主要介紹了
监听浏览器返回,可清除历史记录(移动端:手势返回)(vue)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
問題:
我在寫移動端的時候碰見了一個問題,有一個頁面可以點擊下一條,這樣就會無限的跳轉(zhuǎn)路由,此時就需要忘記路由記錄,返回的時候回到跳進當前頁面的頁面。?
解決:
起初,我直接使用的vue的router的replace,但因此又出現(xiàn)了問題,使用this.$router.replace時,路由記錄的確沒了, 但在手機上使用手勢導航返回,會出現(xiàn)無法返回,手勢導航會根據(jù)replace跳轉(zhuǎn)的次數(shù),手勢導航返回就要幾次
因此 ,我監(jiān)聽了瀏覽器返回的事件,對返回事件觸發(fā)時做處理就好了。
// 進入頁面時保存當前頁url mounted() {if (window.history && window.history.pushState) {// 向歷史記錄中插入了當前頁console.log('向歷史記錄中插入了當前頁')history.pushState(null, null, document.URL)window.addEventListener('popstate', this.goBack, false)}},// 監(jiān)聽頁面銷毀destroyed() {console.log('離開當前頁面')window.removeEventListener('popstate', this.goBack, false)},methods: {// 頁面銷毀時走這個方法goBack() {console.log('點擊了瀏覽器的返回按鈕')// 清緩存sessionStorage.clear()window.history.back()history.pushState(null, null, document.URL)},},beforeRouteLeave(to, from, next) {// 如果這個頁面有跳轉(zhuǎn)其他頁面的路由,所以在組件的路由鉤子里也需要清下緩存sessionStorage.clear()next()},?
?
?
?
總結(jié)
以上是生活随笔為你收集整理的监听浏览器返回,可清除历史记录(移动端:手势返回)(vue)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 光纤熔接机使用方法
- 下一篇: html5倒计时秒杀怎么做,vue 设