做H5項目的時候遇到一個問題,我從 login 登錄頁通過 this.$router.push({ name: 'home' })路由登錄成功後跳轉到首頁,但在ios系統下,會有一個默認返回條,點擊返回鍵出現以下情況,路由顯示的是回到登錄頁,而頁面卻還是首頁。
解決思路:
開始我試着把push改爲replace,但是發現並沒什麼卵用,還是會出現問題,所以只好用路由導航守衛去監聽。
在首頁加入beforeRouteLeave,監聽到to.name如果是login的話就不跳轉,否則就跳轉,然後問題就解決了。
beforeRouteLeave (to, from, next) {
if (to.name === 'login') {
next(false)// 不跳轉
} else {
next() // 跳轉到另一個路由
}
}