React 组件中怎么做事件代理

在 React 组件中使用事件代理可以使用以下方法:

  1. 使用 on 方法来绑定事件监听器:
jsx 复制代码
class MyComponent extends React.Component {
  handleClick(event) {
    if (event.target.tagName === 'BUTTON') {
      console.log('Button clicked');
    }
  }

  render() {
    return (
      <div onClick={this.handleClick}>
        <button>Click me</button>
      </div>
    );
  }
}

在上述例子中,handleClick 方法被绑定到父级 div 元素的 onClick 事件上。当点击 button 元素时,事件会冒泡到父级 div 元素,从而触发 handleClick 方法。然后可以通过 event.target 来判断点击的元素是否是 button 元素。

  1. 使用条件渲染来为不同的元素绑定不同的事件:
jsx 复制代码
class MyComponent extends React.Component {
  handleClick(buttonType) {
    console.log(`${buttonType} clicked`);
  }

  render() {
    return (
      <div>
        <button onClick={() => this.handleClick('Button 1')}>Button 1</button>
        <button onClick={() => this.handleClick('Button 2')}>Button 2</button>
      </div>
    );
  }
}

在上述例子中,通过使用箭头函数,在每个 button 元素的 onClick 属性中调用不同的 handleClick 方法,并传递不同的参数。

这些方法都是使用了 React 的事件委托机制,利用事件冒泡原理来实现事件代理。这样可以减少事件监听器的数量,并且提高性能。

相关推荐
绝世唐门三哥7 小时前
CSS 虚线下划线用法指南:text-decoration 完整解析
前端·javascript·css
程序员爱钓鱼7 小时前
Go if 判断详解
前端·后端·go
程序员黑豆7 小时前
Java字符串拼接全解析:6种方式性能对比与实战指南
java·前端·ai编程
苏灿烤鱼7 小时前
14MB 模型,凭什么跟 270M 对打?
javascript·python·agent
万少12 小时前
DeepSeek 昨晚刚开源了 Harness:附万少的2 万字保姆级教程
前端·后端·架构
程序员黑豆13 小时前
Java字符串详解
java·前端·ai编程
无我Code14 小时前
开发者-2026年中总结
前端·面试·程序员
To_OC15 小时前
LC 560 和为 K 的子数组:前缀和配哈希表,这对组合我是真的服了
javascript·算法·程序员
浮生望15 小时前
React 受控与非受控组件:从表单状态管理到实时校验的完整实践
前端
明朝百晓生16 小时前
Deep RL learning[2026/8]
开发语言·javascript·人工智能