-
中文搜索框不能靠空格切词。本文用 JavaScript Intl.Segmenter 的 word 粒度保留 segment、index 与 isWordLike,再把字符位置映射到高亮范围,处理中文、英文和表情符号的边界。
-
本文详解 React 中因 useCallback 依赖数组遗漏状态变量,导致 useState 切换函数仅执行一次的问题,并提供正确写法、原理分析与最佳实践。 本文详解 React 中因 `useCallback` 依赖数组遗漏状态变量,导致 `useState` 切换函数仅执行一次的问题,并提供
-
本文讲解如何通过事件委托(Event Delegation)为动态添加的 .checkbox 元素正确绑定点击事件,解决直接遍历 querySelectorAll 导致新元素无响应的问题。 本文讲解如何通过事件委托(Event Delegation)为动态添加的 `.checkbox` 元素正确绑定
-
长列表加载更多时,IntersectionObserver 可能因哨兵节点持续可见而重复触发。本文用 sentinel、entry.isIntersecting、loading 和 loadMore 收口一次请求,处理快速滚动与末页边界。
-
IntersectionObserver 观察列表底部时反复触发,通常源于初始通知、相交状态变化与分页请求状态混在一起。本文用 loading、hasMore、nextCursor 和 unobserve 组合,避免同一页重复请求。
-
本文用完整工作流讲解前端图片懒加载:首屏主图优先加载,视口外图片延后请求,并通过 LCP、网络请求和滚动体验验证优化效果。
-
自定义元素已经出现在 HTML 中时,脚本晚到仍可通过 customElements.define 完成升级;真正容易出问题的是重复注册、connectedCallback 多次触发和元素尚未连接时的初始化。本文用 price-badge 示例拆开升级时机、生命周期和可回退的注册写法。
-
HTML inert 是一个全局布尔属性,可以让元素及其后代暂时不能获得焦点、点击或进入辅助技术的可访问性树。本文用一个可关闭弹窗说明如何切换 inert、保留弹窗内焦点、处理 Escape 和旧浏览器降级,并列出容易把 aria-hidden、pointer-events 与 inert 混用的边界。
-
URLPattern 适合把前端路由匹配从手写字符串切分收敛到可校验规则,但命名参数、相对 URL 和浏览器缺失都要单独处理。本文用一个商品详情路由拆解匹配判断、参数读取、baseURL 与降级边界。
-
TypeScript 为什么要引入泛型?泛型(Generics)是 Typescript 中很重要的一个特性,它可以帮助我们创建可重用的组件,同时还能具备类型安全性。主要的优点有:更好的可重用性:通过泛型可以创建一个组件,使其可以支持多种类型,比如创建一个函数或类时,不预先指定具体的类型,而是在使用