如何触发 popstate 事件


vue-router 的 history 模式是使用浏览器的 history state 来实现的,history state 是通过 History 对象来操作的。

popstate 事件是通过 window.addEventListener('popstate') 进行注册的。但触发条件需要满足下面两点:

  1. 点击浏览器的【前进】【后退】按钮,或者调用 history 对象的 backforwardgo 方法
  2. 之前调用过 history 对象的 replaceStatepushState 方法

PS:调用 replaceStatepushState 方法不会导致浏览器真正的跳转,浏览器甚至不会检测 url 的有效性