React如何绑定捕获方式事件

909 阅读1分钟

熟悉React的都知道,比如onClick绑定的事件是在冒泡阶段执行的,如何监听捕获阶段的事件呢?

答案:onClickCapture,只需要在事件绑定熟悉会加上Capture后缀,React会在捕获阶段调用事件回调执行

举个🌰

import React, { Component } from "react";

class App extends Component {
  handleClick = (type) => {
    console.log(`${type}-触发`);
  };
  render() {
    return (
      <div
        onClick={() => this.handleClick("div-冒泡")}
        onClickCapture={() => this.handleClick("div-捕获")}
      >
        <button
          onClick={() => this.handleClick("btn-冒泡")}
          onClickCapture={() => this.handleClick("btn-捕获")}
        >
          点我
        </button>
      </div>
    );
  }
}
export default App;

下图执行顺序

image.png

关于DOM事件流不熟悉可以看这篇文章DOM事件流