情景:
在進行正常頁面跳轉操作后(頁面A跳轉到頁面B),點擊瀏覽器的左上角的‘后退’按鈕,點擊后,可以看到url地址已經發生了變化(url由頁面B變為頁面A),hash值也已經是上一頁的路由,但是瀏覽器顯示的內容卻沒有發生變化(依舊是頁面B)
沒有任何報錯(頁面A和頁面B無任何js錯誤或者兼容性錯誤)。
百度查了很多,就是hash模式導致的,所以重新觸發下hashchange事件解決了問題,
解決辦法:
1、vue-router HTML5 History 模式 可以設置為history 模式解決問題
a、首先學習下hash模式的url相關知識
b、對,就是通過onhashchange 事件來解決這個bug
APP.vue入口中:
mounted() { // 檢測瀏覽器路由改變頁面不刷新問題,hash模式的工作原理是 hashchange事件 window.addEventListener('hashchange', () => { let currentPath = window.location.hash.slice(1) if (this.$route.path !== currentPath) { this.$router.push(currentPath) } }, false) }