文章詳情頁
javascript - vue2.0中router.repalce跟router.push有什么區(qū)別,二者的應(yīng)用場景是會有怎樣的區(qū)別?
瀏覽:107日期:2023-05-31 14:57:31
問題描述
vue2.0中,在其對應(yīng)的router2.0中解釋router.replace跟router.push二者很像,唯一的區(qū)別是router.replace不會向 history 添加新記錄,而是替換掉當(dāng)前的 history 記錄。那么試問二者的應(yīng)用場景有什么不同?
問題解答
回答1:可以把路由router想象成一個訪問記錄的棧,router.replace()是替換掉棧頂,而router.push()則是向棧中再堆如一個新記錄。
一般情況下,要做前進(jìn)后退的瀏覽記錄管理的,基本上都是用router.push(),但是也是有一些特殊情況需要用到router.replace()。比如,有一個授權(quán)頁,用戶在按流程操作時,某一步需要授權(quán),是直接跳到授權(quán)頁,授權(quán)頁提交授權(quán)請求,直到成功授權(quán)后,跳到流程中的下一步操作的地址。此處,授權(quán)請求的那頁面應(yīng)該用replace去替換掉自身的訪問記錄,防止用戶跳到下一步流程后按后退鍵回退到授權(quán)頁,而導(dǎo)致重復(fù)授權(quán)。
回答2:沒有history的話,瀏覽器后退就無法找到上一個頁面的了。
標(biāo)簽:
JavaScript
排行榜

熱門標(biāo)簽