Day 13:事件系统

4 阅读1分钟

Day 13:事件系统

合成事件(SyntheticEvent)

React 包装的事件对象,跨浏览器兼容

function handleClick(e) {
  console.log(e.type); // 'click'
  console.log(e.target); // 真实 DOM
  e.preventDefault(); // 阻止默认
  e.stopPropagation(); // 阻止冒泡
}

<button onClick={handleClick}>点击</button>

事件委托

把所有事件委托到根节点,减少内存

// React 只在容器上绑定一个事件
<div onClick={handler}>
  <button>1</button>
  <button>2</button>
</div>

// 点击任意按钮 → 冒泡到 div → 触发

事件优先级

优先级事件Lane
最高点击、输入DiscreteEventPriority
拖拽、动画ContinuousEventPriority
普通其他DefaultEventPriority

自测答案

  1. 合成事件:React 包装的事件对象,统一兼容
  2. 事件委托:在根节点绑定,冒泡触发
  3. 优先级:点击 > 拖拽 > 其他