vue-router 的 history 模式是使用瀏覽器的 history state 來實現的,history state 是通過 History 對象來操作的。
popstate
事件是通過 window.addEventListener('popstate')
進行注冊的。但觸發條件需要滿足下面兩點:
- 點擊瀏覽器的【前進】【后退】按鈕,或者調用
history
對象的back
、forward
、go
方法 - 之前調用過
history
對象的replaceState
或pushState
方法
PS:調用 replaceState
、pushState
方法不會導致瀏覽器真正的跳轉,瀏覽器甚至不會檢測 url 的有效性