熟悉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;

下图执行顺序

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


前端开发_吴同学
0 声望0 粉丝

从事前端开发5年,目前在阿里巴巴担任高级前端开发工程师,负责1688电商系统开发工作