當前位置:
首頁 >
vue-router使用next()跳转到指定路径时会无限循环
發(fā)布時間:2025/4/16
36
豆豆
生活随笔
收集整理的這篇文章主要介紹了
vue-router使用next()跳转到指定路径时会无限循环
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
我在路由為 /path 的頁面這樣寫
beforeRouteLeave (to, from, next) {console.log('離開路路由')if(to.fullPath==='/home'){next();}else{next('/home')}這個是組件路由,我想實現(xiàn)的效果是在這個頁面點擊瀏覽器的返回按鈕后要返回 /home頁面而不是上一個頁面,上面的代碼是沒問題的,而我之前的寫法就一直死循環(huán)
// 下面的寫法會死循環(huán) beforeRouteLeave (to, from, next) {console.log('離開路路由')next('/home') } 我不太明白為什么會死循環(huán),我在home頁面也沒有寫任何鉤子函數(shù)來跳到result頁面啊,我也沒有寫全局的beforeEach鉤子函數(shù)。 上面第一段代碼是可用的,自己瞎摸索出來的,但是不是很明白為什么要加那個判斷?后來經(jīng)過查閱資料得知vue-router的next()方法無參和有參時是不一樣的
現(xiàn)在,算是大致理解了,當執(zhí)行鉤子函數(shù)時如果遇到next('/home')等時會中斷當前導航,
比如當前導航是去/a,那么遇到next('/home')后就會把to.path改為/home,然后會重新觸發(fā)這個離開的鉤子,
注意:此時會重新觸發(fā)執(zhí)行這個鉤子,而不是在這個鉤子函數(shù)繼續(xù)執(zhí)行的,之前是一直沒理解這里,
以為是執(zhí)行next('/home')后就會直接跳到home頁面呢,當重新觸發(fā)后就會繼續(xù)執(zhí)行next('/home')所以會一直循環(huán)
。至于解決辦法就是判斷下,如果已經(jīng)是/home了就next()。
轉(zhuǎn)載于:https://www.cnblogs.com/yuwenjing0727/p/9916691.html
總結(jié)
以上是生活随笔為你收集整理的vue-router使用next()跳转到指定路径时会无限循环的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PostgreSQL的实践一:初识
- 下一篇: 经典动态规划之过河卒【洛谷 P1002】