在React js中,对于每个拖动事件,都有一个带有“ capture”前缀的对应事件
onDragEnter与onDragEnterCapture,onDragLeave与onDragLeaveCapture等。
谁能说出两者之间的区别以及何时使用它们,因为它们都响应了类似的事件
最佳答案
冒泡和捕获基本上是事件传播的两种方式。
冒泡:
当事件发生在元素上时,它首先在该元素上运行处理程序,然后在其父元素上运行,然后一直在其他祖先上运行。
假设我们有3个嵌套元素form> div> p
,每个元素上都有一个处理程序:
单击内部<p>
首先运行onclick:
在那个<p>
上。
然后在外部<div>
上。
然后在外部<form>
上。
依此类推,直到文档对象。
捕获:事件首先被最外面的元素捕获并传播到内部元素:
因此,在同一示例中,当您单击外部元素<form>
时,它将在以下位置运行:
在那个<form>
然后是内在的<div>
然后<p>
使用react时,要为捕获阶段注册事件处理程序,请将Capture附加到事件名称;例如,您可以使用onClickCapture来处理捕获阶段中的click事件,而不是使用onClick。
其他事件也是如此。
来源[1] [2]
关于javascript - React JS onDragCapture与onDrag,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59047091/