React合成事件

一、合成事件

    1. event 是 SyntheticEvent ,模拟出来 DOM 事件所有能力
    1. event.nativeEvent 是原生事件对象
    1. 所有的事件,都被挂载到 document 上(React ≤ 16),React17之后是挂载到root组件
    1. 和 DOM 事件不一样,和 Vue 事件也不一样

      div触发事件,DOM事件冒泡到document上,
      document会生成一个统一的合成事件对象
      再派发事件

二、为什么要合成事件机制?

1、更好的兼容性和跨平台

自己实现一套事件机制,尽可能摆脱了DOM事件的逻辑, 更好的兼容性和跨平台

2、挂载到document, 减少内存消耗,避免频繁解绑

事件挂载越多,内存消耗越高,(不用给每个子元素挂载事件,使用冒泡)

看似事件挂载到组件上,其实是在document,组件销毁的时候,也不用解绑事件

3、方便事件的统一管理(如事务机制)

三、React事件绑定

  • React16 绑定到document
  • React 17 18绑定到root组件
  • 有利于多个React版本并存,例如微前端
相关推荐
OpenTiny社区22 分钟前
以界面重构文字,GenUI 正式发布!
前端·vue.js·ai编程
yuki_uix30 分钟前
深入理解 JavaScript 的 this:从困惑到掌握的完整指南
前端·javascript
小贤哥31 分钟前
死磕这几道js手写题
前端·程序员
Lee川32 分钟前
🌐 深入 Chrome 浏览器:从单线程到多进程架构的进化之路
前端·架构·前端框架
学以智用35 分钟前
Vue 3 项目核心配置文件详解
前端·vue.js
工边页字37 分钟前
AI 开发必懂:Context Window(上下文窗口)到底是什么?
前端·人工智能·后端
Mr_Swilder39 分钟前
intel显卡本地部署大模型
前端
yuki_uix40 分钟前
Promise 与 async/await:从回调地狱到优雅异步的演进之路
前端·javascript
over69743 分钟前
📸《拍照记单词》—— 从零到上线的完整开发指南(超详细版)
前端·人工智能·产品
毛骗导演44 分钟前
万字解析 OpenClaw 源码架构-架构概览
前端·架构