把两个 setState 放进同一个 setTimeout,React 18 只渲染一次,17 会渲染两次。本文用可复制的计数示例复现差异,讲清 createRoot 与旧入口的适用边界、StrictMode 双调用和 flushSync 造成的两次渲染,给出安装、配置、检查到验证的完整排查顺序。
React 里做条件渲染有短路、三元和提前 return 三种写法,选错不一定报错,却会留下难查的隐患。本文按分支数量给出选择依据,演示 0 被渲染到页面、嵌套三元不可读、子组件状态被卸载丢失三类问题,并说明与 Hooks 调用顺序的冲突边界。
前端要做 GIS 地图,先回答四个问题:有没有经纬度、要不要缩放、图层要不要对齐、有没有空间计算。本文讲清能降级的三类场景,WGS84 与 GCJ-02 混用导致的偏移,以及按图层复杂度选择地图库的思路,附上线前的检查清单。
TypeScript 里描述对象结构、要被类实现或留给别人扩展时用 interface;要表达联合类型、交叉类型与条件类型时只能用类型别名。本文用同一份结构各写一遍,讲清扩展方式、表达能力与重复声明三点差异。
父组件调用子组件方法失败,多半是没转发引用、方法没写进暴露清单,或者调用时机早于挂载完成。本文用一个可运行的最小示例把转发引用、暴露方法、父组件调用三步走通,并给出三种失败分支的判断方式与验证清单。
Next.js 里写服务端渲染组件,默认就在服务端执行,不需要再用副作用取首屏数据。本文给出 App Router 的 async 组件与 Pages Router 取数函数两套最小示例,讲清浏览器接口边界、客户端组件划分时机与三类常见报错的排查步骤。
axios 要对接多套后端,别在共享实例上反复改接口基地址。本文给出按后端拆分实例、用请求拦截器按前缀改写、用环境变量切换三套写法,讲清各自适用场景、并发覆盖的原因与验证清单。
定位网页性能瓶颈按固定三步走:先用计时接口把卡顿量化成数字并找出长任务,再判断耗时来自脚本计算还是布局重排,最后按类别选择拆分任务或读写分离并复测。本文给出可复制的计时代码、反面示例与修复写法,附三类常见失败分支。