首頁  >  問答  >  主體

javascript - vue2.0中router.repalce跟router.push有什麼差別,二者的應用場景是會有怎樣的差別?

vue2.0中,在其對應的router2.0中解釋router.replace跟router.push二者很像,唯一的區別是router.replace不會向history 添加新記錄,而是替換掉當前的history 記錄。
那麼試問二者的應用場景有什麼不同?

ringa_leeringa_lee2690 天前863

全部回覆(2)我來回復

  • 天蓬老师

    天蓬老师2017-06-26 10:56:01

    可以把路由router想像成一個存取記錄的棧,router.replace()是替換掉棧頂,而router.push()則是向棧中再堆如一個新記錄。

    一般情況下,要做前進後退的瀏覽記錄管理的,基本上都是用router.push(),但是也是有一些特殊情況需要用到router.replace()。例如,有一個授權頁,使用者在按流程操作時,某一步需要授權,是直接跳到授權頁,授權頁提交授權請求,直到成功授權後,跳到流程中的下一步操作的位址。此處,授權請求的那頁面應該用replace去替換掉自身的存取記錄,防止用戶跳到下一步流程後按後退鍵回退到授權頁,而導致重複授權。

    回覆
    0
  • 大家讲道理

    大家讲道理2017-06-26 10:56:01

    沒有history的話,瀏覽器後退就找不到上一個頁面的了。

    回覆
    0
  • 取消回覆