把两个 setState 放进同一个 setTimeout,React 18 只渲染一次,17 会渲染两次。本文用可复制的计数示例复现差异,讲清 createRoot 与旧入口的适用边界、StrictMode 双调用和 flushSync 造成的两次渲染,给出安装、配置、检查到验证的完整排查顺序。
在 Chrome 控制台敲 $('#box') 能选中元素,很多人误以为是 jQuery,其实它和 jQuery 毫无关系。本文把控制台里的 $、$$、$0、$_ 逐个讲清,说明它们只是 DevTools 注入的调试快捷键,离开控制台就失效,绝不能写进业务代码。配合能直接复现的示例,你会明白为什么把这些符号当库函数用是上线即崩的坑,以及该用什么原生写法替代。
在 rsbuild + Vue3 项目里用 SVG,最稳的是以组件方式引入 .svg 文件,再用 currentColor 或 Vue 内置支持渲染。三个坑分别是文件当静态资源直接引、没启用 SVG 加载器、以及 SSR 下路径解析失败。本文从最小示例讲到边界。
React 应用越写越大后,组件重复渲染和卡顿是最常被感知的问题。本文讲清纯展示组件漏加 memo、渲染里创建新对象导致 memo 失效、昂贵计算放在组件体内三类根因,并给出用 Profiler 量化、useCallback 与 useMemo 的修复写法。照着做就能针对性优化,避免盲目堆缓存。
Next.js 里写服务端渲染组件,默认就在服务端执行,不需要再用副作用取首屏数据。本文给出 App Router 的 async 组件与 Pages Router 取数函数两套最小示例,讲清浏览器接口边界、客户端组件划分时机与三类常见报错的排查步骤。
输入搜索框每敲一字就发请求、页面滚动监听一秒触发几十次——这种高频事件到底该用防抖还是节流,很多人用反了导致请求打爆接口或页面卡死。本文用最通俗的方式讲清两者区别、给出可直接运行的实现与验证方法,帮你一次选对、照着写就能跑通。