关于vue-router跳转后history.state的疑问
已知history.pushState是个同步事件
vue-router也是基于这个方法包装的
vue-router中还有个发生在跳转之后的生命周期afterEach
我将在这里面试图查询history.state
发现它会提供一个这样的对象{key: /d+.d{2}/},虽然没找到文档,验证后发现key的内容应该是主组件启动后每次跳转时的时间
问题在这里,afterEach的调用时机发生在跳转之后,也就是history.pushState调用后
这时候history.state应该是已经更新而且不变的了
但是我在这个勾子里同步打印history.state,或者设置个异步去打印history.state
他们的值是不一样的,这是什么原因
这是代码
这是触发router.push时发生的跳转.同步异步都是不一致的
这是使用浏览器自带的前进/后退时打印的值,同步异步一致
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
https://github.com/vuejs/vue-...
仔细看这个文件的这两个位置。你可能就会知道为什么第一次会不一样。因为执行顺序。并不是afterEach是地址变化之后。