关于vue-router跳转后history.state的疑问

发布于 2022-09-06 20:36:07 字数 809 浏览 14 评论 0

已知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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

当爱已成负担 2022-09-13 20:36:07

https://github.com/vuejs/vue-...
clipboard.png

clipboard.png
仔细看这个文件的这两个位置。你可能就会知道为什么第一次会不一样。因为执行顺序。并不是afterEach是地址变化之后。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文