什么是React ......捕获事件?

时间:2017-02-24 13:13:21

标签: reactjs dom

反应audiovideo标记上的每个事件都有重复,例如它还有onCanPlayThrough属性和onCanPlayThroughCapture。它们在浏览器中的行为完全相同。

我们是否需要使用...Capture个事件而不是标准事件?他们的主要想法是什么?我在哪里可以找到有关它们的信息。

2 个答案:

答案 0 :(得分:7)

DOM事件有multiple phases(见下图),它们是(按顺序):

  • 捕获
  • 目标
  • 鼓泡

通常我们使用目标或冒泡(addEventListener' s false第三个参数),但在极少数情况下你想要挂钩到捕捉阶段(第三个参数= {{ 1}})。 true处理程序允许您这样做。

event flow showing capture from window to target element, then target at element, then bubbling from element back up to window

答案 1 :(得分:2)

它们不一样,documentation也说明了这一点:

  

下面的事件处理程序由冒泡阶段的事件触发。要为捕获阶段注册事件处理程序,请将Capture附加到事件名称;例如,不使用onClick,而是使用onClickCapture来处理捕获阶段的click事件。

效果与常规DOM bubbling/capturing相同。如果要捕获,事件将首先触发父项。在冒泡时,它会先触发实际元素,然后向父母冒泡。