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