2017-02-24 24 views
1

每个事件的反应audiovideo标记都有一个副本,例如它也有onCanPlayThrough属性和onCanPlayThroughCapture。他们在浏览器中的行为完全相同。什么是React ...捕获事件?

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

回答

5

DOM事件具有multiple phases(参见下图),这是(按顺序):

  • 捕捉
  • 目标
  • 鼓泡

通常我们使用目标或冒泡(addEventListener第三个参数),但是在极少数情况下,您想要进入捕获阶段(第三个参数= true)。 ...Capture处理程序可以让你做到这一点。

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

1

他们是不一样的和documentation还指出这一点:

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

效果与常规DOM bubbling/capturing相同。如果你想捕捉,事件将首先触发父母。冒泡时,它会首先触发实际元素,然后冒泡给父母。