Tag
怎么说呢, 完整教学体验请参阅:JavaScript:从事件循环到手写 Promise 第一章 · 单线程与事件循环 为什么 JS 是单线程?话说回来, JS 一开始的目标只是给浏览器写"小动作"——表单校验、显示弹窗、操作 DOM 节点。Brendan Eich 在 1995 年用十天设计这门语言时做了一个影响长远的决定:所有 JS 代码都跑在同一个线程上。 主要原因是 DOM 不是线程安全的
查看更多 2026-09-21
其实, React事件程序如何工作? 在 React 开发中,很多开发者遇到过这种困惑:为什么在子组件里写了e.stopPropagation 父组件的点击事件还是触发了?怎么说呢,为什么在微前端架构中,多个 React 应用会互相干扰?要解决这些痛点,必须深度理解 React 的 合成事件程序 还有 事件委托 的底层运行方式。 一、 合成事件程序 1. 直觉锚定 想象一个国际会议
查看更多 2026-09-21
💡 常见痛点汇总: - 两套程序混用导致双击/漏触发: 当你在组件里同时使用 和 element.addEventListener 时会出现同一点击被触发两次、阻止默认行为失效、或者冒泡冲突等问题。- 异步回调拿不到 SynticEvent: 在旧版 React中 SynticEvent 会被复用。所以 setTimeout=>console.log,0) 常返回 null 。-
查看更多 2026-09-15
引子 你大概已经用 AI 写过不少 Node.js 代码了。 让 Copilot 帮你生成一个 Express 路由,几秒钟的事。让它写一段文件读取逻辑,async/await 包得整整齐齐。大多数时候,这些代码能跑,甚至跑得不错。 但总有一些时刻。事情开始变得诡异: setTimeout 和 Promise 的执行顺序,跟你在浏览器里的经验对不上。 setImmediate 和
查看更多 2026-09-03
不过, 在前端开发中。最常见却又最容易被误解的一个概念就是事件流 ——它决定了点击、键盘或焦点等事件是先在父级捕获,还是先在子级触发后再冒泡上去。想想看,当你点到页面上的某个按钮,却意外触发了父容器里的关闭弹窗代码;或者你想在所有表单字段聚焦时统一统计,却发现统计代码根本没有被执行。不过,这些痛点往往源于对捕获与冒泡机制的误判。 一、DOM事件流的三阶段 DOM标准把事件传播分成三个阶段:
查看更多 2026-08-15
一、事件监听是做什么的?话说回来, 事件监听是浏览器提供的一种机制。让你在特定事件发生时执行代码。通俗来说就是的观点是,"当某个元素发生某件事时请帮我执行某段逻辑" 。按理说, 点击我 上面的代码做了三件事:确定目标 指定事件类型 注册回调 。这个"注册-触发"模式构成了浏览器事件程序的基础。 二、DOM Level:最原始的 onclick 痛点一:只能绑定一个处理函数,导致覆盖和丢失逻辑。
查看更多 2026-08-04
在分布式开发中最常见的痛点:事务一致性难保、消息重复消费导致错误、服务耦合过高还有跨程序通信缺乏统一规范。下面用最直白的语言拆解「DDD 中的领域事件」和「适配器」到底能帮我们解决什么。 理解 DDD 中的领域事件与事件适配器 1️⃣ 什么是领域事件? 在 DDD 的语境里「实体/聚合」只负责**做正确**;而「域层」负责描述**“已经发生”** 的事实——这就是 **Domain
查看更多 2026-08-03
📌 前言 在写 DeepSeek‑R1 WebGPU Demo 时我写了这样一段代码: setStatus}>Load Model { /* ... */ }} /> { /* ... */ }} /> 看起来很简单,对吧?但你有没有想过: 痛点 1: 为什么 React 用 onClick 而不是 onclick ? 痛点 2: 为什么不用直接调用 addEventListener ?
查看更多 2026-08-03
彻底搞懂 JavaScript 事件循环 先解决一个根本问题:为什么需要事件循环? JavaScript 是单线程 语言。这代表着同一时间只能执行一个任务。 再看你可能会问,那异步操作怎么办?网络请求、定时器、使用者点击——难道要全部阻塞主线程? 如果真是这样,点一个按钮页面就卡死了浏览器直接弹出"页面未响应"。 事件循环 ,就是 JavaScript 在单线程限制下实现"非阻塞异步"的主要机制
查看更多 2026-08-01
🎯 什么是合成事件? SynticEvent是 React 模拟原始 DOM 时间所有能力的一种时间对象,它是浏览器本身时间对象跨浏览器包装。它依据 W3C 标准定义、兼容所有主流浏览器,而且拥有与原始时间相同的一套 API。 // React 中使用 function Button { const handleClick = => { console.log // 合成时间对象,而非原始时间
查看更多 2026-07-23
Demand feedback