如何触发 popstate 事件
vue-router 的 history 模式是使用浏览器的 history state 来实现的,history state 是通过 History 对象来操作的。
popstate
事件是通过 window.addEventListener('popstate')
进行注册的。但触发条件需要满足下面两点:
- 点击浏览器的【前进】【后退】按钮,或者调用
history
对象的back
、forward
、go
方法 - 之前调用过
history
对象的replaceState
或pushState
方法
PS:调用 replaceState
、pushState
方法不会导致浏览器真正的跳转,浏览器甚至不会检测 url 的有效性