-
IntersectionObserver 观察列表底部时反复触发,通常源于初始通知、相交状态变化与分页请求状态混在一起。本文用 loading、hasMore、nextCursor 和 unobserve 组合,避免同一页重复请求。
-
用 AbortSignal.any 把用户取消和超时合并为一个 fetch 信号,并根据 reason 区分取消来源,补充监听器清理与兼容性边界。
-
自定义元素已经出现在 HTML 中时,脚本晚到仍可通过 customElements.define 完成升级;真正容易出问题的是重复注册、connectedCallback 多次触发和元素尚未连接时的初始化。本文用 price-badge 示例拆开升级时机、生命周期和可回退的注册写法。
-
HTML inert 是一个全局布尔属性,可以让元素及其后代暂时不能获得焦点、点击或进入辅助技术的可访问性树。本文用一个可关闭弹窗说明如何切换 inert、保留弹窗内焦点、处理 Escape 和旧浏览器降级,并列出容易把 aria-hidden、pointer-events 与 inert 混用的边界。
-
URLPattern 适合把前端路由匹配从手写字符串切分收敛到可校验规则,但命名参数、相对 URL 和浏览器缺失都要单独处理。本文用一个商品详情路由拆解匹配判断、参数读取、baseURL 与降级边界。
-
TypeScript 为什么要引入泛型?泛型(Generics)是 Typescript 中很重要的一个特性,它可以帮助我们创建可重用的组件,同时还能具备类型安全性。主要的优点有:更好的可重用性:通过泛型可以创建一个组件,使其可以支持多种类型,比如创建一个函数或类时,不预先指定具体的类型,而是在使用