html 确定React onEvent属性中的事件顺序

xmjla07d  于 2022-12-09  发布在  React
关注(0)|答案(1)|浏览(112)

假设HTML元素如下所示:

<a onClick={() => console.log("side effect that needs to fire before the redirect"} href="yourlink.com">Click me</a>

这里onClick事件在用户被重定向之前被执行。这是一直都是这样的吗?或者这是未定义的,或者这取决于浏览器?

jtoj6r0c

jtoj6r0c1#

总是这样吗......
是的,事件的默认操作(如跟踪链接)(如果有)在调用事件处理程序之前不会被触发,这主要是因为事件处理程序可以通过对事件对象调用preventDefault来防止它发生。
但是要注意,当页面离开时,(几乎)所有未完成的 * 异步 * 工作都将被终止,因此您的事件处理程序不能(例如)向服务器发送标准 AJAX 请求;当处理程序返回时,该工作仍在进行中,并将在页面被拆除时终止。(beacon是一个例外。)

相关问题