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