-
在 Vite 项目里,使用 ?worker 导入得到的是 Worker 构造器,而不是普通模块对象。本文用一个最小的 TypeScript 示例说明 worker 文件、消息协议、?worker&inline、?sharedworker 与 vite/client 类型提示的关系,并整理部署和生命周期中的常见误区。
-
CSS.registerProperty() 可以为自定义属性声明语法类型、继承策略和初始值,让颜色、长度等值更适合参与 CSS transition。本文用原创示例说明四个字段、动画接法、重复注册异常和兼容性降级。
-
自定义元素默认不会自动进入原生表单校验和提交流程。本文用 ElementInternals、setFormValue 和 setValidity 实现一个可提交、可校验的自定义表单控件,并说明 name、required 与空值处理边界。
-
本文详解 React 中因 useCallback 依赖数组遗漏状态变量,导致 useState 切换函数仅执行一次的问题,并提供正确写法、原理分析与最佳实践。 本文详解 React 中因 `useCallback` 依赖数组遗漏状态变量,导致 `useState` 切换函数仅执行一次的问题,并提供
-
本文讲解如何通过事件委托(Event Delegation)为动态添加的 .checkbox 元素正确绑定点击事件,解决直接遍历 querySelectorAll 导致新元素无响应的问题。 本文讲解如何通过事件委托(Event Delegation)为动态添加的 `.checkbox` 元素正确绑定
-
用 AbortController 和 AbortSignal.timeout 为 Fetch 设置超时,区分 TimeoutError、AbortError、HTTP 状态和普通网络错误,并给出兼容回退写法。
-
用 PerformanceResourceTiming 的域名解析、连接和安全连接时间戳拆分 DNS、TCP、TLS 耗时,并处理跨域受限、缓存命中与连接复用导致的零值。
-
URLPattern 可以在同一个对象模式中分别声明 hostname 与 pathname,并从 exec 返回值的对应组件读取命名分组。本文用多租户项目地址演示域名参数、路径参数、相对 URL、未匹配处理和旧环境回退。
-
复杂组件更新时,CSS contain 可以把布局、绘制、样式或尺寸计算限制在子树内。本文说明 layout、paint、size、content 的边界,解释定位和溢出副作用,并给出 contain-intrinsic-size 的实用写法。
-
React useEffect 发起搜索请求时,旧请求可能晚于新请求返回并覆盖页面状态。本文用 cleanup 的 ignore 标记与 AbortController 两层边界处理竞态,并用可观察指标判断修复是否生效。
-
长列表加载更多时,IntersectionObserver 可能因哨兵节点持续可见而重复触发。本文用 sentinel、entry.isIntersecting、loading 和 loadMore 收口一次请求,处理快速滚动与末页边界。
-
IntersectionObserver 观察列表底部时反复触发,通常源于初始通知、相交状态变化与分页请求状态混在一起。本文用 loading、hasMore、nextCursor 和 unobserve 组合,避免同一页重复请求。
-
用 AbortSignal.any 把用户取消和超时合并为一个 fetch 信号,并根据 reason 区分取消来源,补充监听器清理与兼容性边界。
-
HTMLInputElement.showPicker() 可以让自定义按钮打开日期、文件、颜色或 datalist 等原生选择器;关键是保留用户点击上下文,先做特性检测,并为异常和旧浏览器准备原生 input 回退。
-
通过工单分组示例说明 JavaScript Map.groupBy 的对象引用键、原引用查询、属性修改与成员重建,以及归档和清理方式。