当前位置: 首页 > news >正文

自己手机怎么免费做网站网络广告计费方式

自己手机怎么免费做网站,网络广告计费方式,医院网站运营方案,ipv6网站如何做一、核心差异对比表 维度原生事件React 事件绑定语法HTML 属性#xff08;onclick#xff09;或 DOM API#xff08;addEventListener#xff09;JSX 中使用驼峰式属性#xff08;onClick#xff09;绑定位置直接绑定到具体 DOM 元素统一委托到根节点#xff08;React …一、核心差异对比表 维度原生事件React 事件绑定语法HTML 属性onclick或 DOM APIaddEventListenerJSX 中使用驼峰式属性onClick绑定位置直接绑定到具体 DOM 元素统一委托到根节点React 17 及以前到 documentReact 18 到容器事件对象原生 Event 对象不同浏览器实现有差异合成事件 SyntheticEvent封装原生事件并抹平浏览器差异传播机制完整的捕获 → 目标 → 冒泡 三阶段表面只有冒泡捕获需显式声明如 onClickCaptureReact 18 支持完整阶段阻止传播event.stopPropagation() 阻止整个 DOM 树的传播仅阻止合成事件传播不影响原生事件默认行为event.preventDefault() 或 HTML 中返回 false只能使用 event.preventDefault()this 指向默认指向 DOM 元素可通过 bind、箭头函数修改默认 undefined需手动绑定构造函数、箭头函数或类属性触发顺序按 DOM 树层级依次触发原生事件总是先触发合成事件在冒泡到根节点后触发性能优化大量绑定时可能导致内存开销大事件委托 事件池复用事件对象减少监听器数量和内存占用兼容性需处理浏览器差异如 IE 的 attachEvent统一 API自动处理兼容性 二、关键机制详解 1. 事件委托机制 原生事件 每个元素需单独绑定监听器大量元素时性能较差 // 手动为每个按钮绑定事件 document.querySelectorAll(button).forEach(btn {btn.addEventListener(click, handleClick); });React 事件 所有事件统一委托到根节点通过事件类型和目标元素匹配处理函数。 // 所有按钮的点击事件最终由根节点的统一处理器分发 button onClick{handleClick}Click/button2. 合成事件 SyntheticEvent 跨浏览器封装 React 将不同浏览器的原生事件封装为统一接口例如 function handleClick(e) {e.preventDefault(); // 兼容所有浏览器的阻止默认行为console.log(e.target); // 标准化的目标元素 }事件池优化 React 复用事件对象以减少 GC 压力React 17 及以前 function handleClick(e) {setTimeout(() {console.log(e.target); // React 17 及以前此处会失效因事件对象已被重置}, 0); }3. 事件传播差异 原生事件 预览 div onclickconsole.log(原生冒泡)button onclickconsole.log(原生目标)Click/button /div传播顺序button → div冒泡阶段。 React 事件 div onClickCapture{() console.log(React 捕获)}button onClick{() console.log(React 冒泡)}Click/button /divReact 18 传播顺序div捕获 → button目标 → div冒泡。 4. 触发顺序细节 当同时存在原生和合成事件时 div onClick{() console.log(合成事件)} onMouseDown{() console.log(合成 mousedown)} button onclickconsole.log(原生 click) onmousedownconsole.log(原生 mousedown)Click/button /div点击按钮的触发顺序 原生 mousedown → 原生 click → 合成 onMouseDown → 合成 onClick。 三、特殊场景对比 1. 混合使用原生与合成事件 class App extends React.Component {componentDidMount() {// 手动绑定原生事件this.buttonRef.current.addEventListener(click, () {console.log(原生事件);});}render() {return (button ref{this.buttonRef} onClick{() console.log(合成事件)}Click/button);} }原生事件先触发合成事件后触发。原生事件的 stopPropagation() 会阻止合成事件触发。 2. 事件池与异步访问 React 17 及以前复用事件对象异步访问需提前保存属性 function handleClick(e) {const target e.target; // 必须提前保存setTimeout(() {console.log(target); // 正确访问console.log(e.target); // React 17 及以前会失效}, 0); }React 18 移除了事件池可直接异步访问。 四、总结 特性原生事件React 事件优势直接控制 DOM适合复杂交互场景跨浏览器一致性性能优化代码简洁劣势兼容性差大量绑定时性能问题抽象层级高特殊场景需结合原生事件适用场景自定义滚动、拖拽等复杂 DOM 操作组件内交互、表单处理等常规场景
http://www.zqtcl.cn/news/48040/

相关文章:

  • 网站建设及网页设计教案wordpress授权怎么破解
  • 网站改版影响排名wordpress 点评网
  • 重庆建设银行官方网站首页wordpress旅游网
  • 网站开发学那种语言宣传片拍摄技巧
  • 织梦网站提示保存目录数据时报短视频动画人物说话制作
  • 石河子规划建设局网站wordpress主题消失
  • 百度地图 企业网站怎么样开始做网站
  • 深圳网站开发公司宝网一般多少钱做一个网站
  • 青海省公路建设管理局网站建立互联网公司网站
  • 北京网站建设降龙适合中小企业的管理软件
  • 杭州市建设信用网站微信小程序免费制作平台
  • 海报模板网站有哪些免费云主机服务器
  • 微建网站郑州网站建设金麦建站
  • 网站遮罩是什么完成网站群建设
  • 网站建设所面临的问题大数据精准营销案例
  • 网站建设 推广企业税率怎么快速推广业务
  • 网站投放家装装饰设计
  • 北京智能网站建设系统加盟wordpress自定义表格
  • 锡山建设局网站qq群推广引流
  • seo网站高效的客户管理crm系统
  • 做的最少的网站开源公司网站
  • 做农业需关注什么网站个人网站 做啥好
  • 河南省建设厅网站师林峰湖南做网站磐石网络案例
  • 昆山网站建设兼职网络推广做些什么
  • 太原企业网站模板建站广告传媒公司是做什么的
  • 建站专业团队一站式服务威海高端网站建设
  • 网站没有备案可以访问吗衡阳商城网站制作
  • 龙岗商城网站建设哪家便宜国家职业证书查询网入口
  • 西部数码网站管理助手搭建织梦互联网seo是什么意思
  • wordpress改站点地址室内设计网站官网大全