捕获事件

看react源码时发现有 onClickCapture 事件,这种事件是react 有的。普通dom如何绑定 capture呢?

  1. elem.addEventListener(..., {capture: true})
  2. // or, just "true" is an alias to {capture: true}
  3. elem.addEventListener(..., true)

例如,绑定click的事件和click的捕获事件:

  1. //冒泡事件
  2. elem.addEventListener('click',(event) => {}, false)
  3. //捕获事件
  4. elem.addEventListener('click',(event) => {}, {capture: true})
  5. // or, just "true" is an alias to {capture: true}
  6. elem.addEventListener('click',(event) => {}, true)

react 事件

react很好的模拟了整个事件流。react是原生click冒泡后触发的,也就是 dom原生click 冒泡后触发 react 的 captureClick 事件和click。

react事件使用的bug

例如:【M】【Android】手百app,点击筛选栏价格弹出弹窗,按住自定义筛选价格的按钮左右滑动,很易触发翻页,期望可准确滑动自定义条;
组件滑动敏感度问题,改用原生事件!

参考