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 |
自测答案
- 合成事件:React 包装的事件对象,统一兼容
- 事件委托:在根节点绑定,冒泡触发
- 优先级:点击 > 拖拽 > 其他