举个例子,我们可以做类似下面的事情,使监听器仅在事件捕获阶段触发:
element.addEventListener(event, function, true);
要么,
element.addEventListener(event, function, {passive: true});
..使听众变得被动.但是,所有这些设置仅限于通过JavaScript代码进行设置.如果,我们在HTML / Template代码中将侦听器添加到DOM元素,例如:
<element onevent="function">
在这种情况下,我们如何在监听器上进行所有这些设置?这些设置是理想的,特别是当我们使用诸如React之类的框架时,该框架仅用于直接在模板中附加事件处理程序,而几乎从未使用element.addEventListener().
解决方法:
通过在事件名称的末尾附加Capture,React提供了一种在捕获阶段使用事件的方法.
按照docs:
The event handlers are triggered by an event in the bubbling phase. To
register an event handler for the capture phase, append Capture to the
event name; for example, instead of usingonClick
, you would useonClickCapture
to handle the click event in the capture phase.