该技能用于在编写、审查或优化 React 组件时,提供关于重渲染与记忆化的实用指南,纠正常见误解并说明优化的真正时机。
核心理念:信任 React 的性能,写简单代码,只有真正感觉慢时才测量,并基于数据优化而非恐惧。
适用时机:编写新 React 组件、审查性能问题、决定是否添加 React.memo、useCallback 或 useMemo、调试感觉到的卡顿、重构组件架构。
规则分类包括:心智模型(mental-model-)、反模式(anti-pattern-)、何时记忆化(when-to-memo-)、架构(architecture-)。
关键要点:真正触发重渲染的是组件自身状态变化、父组件重渲染级联、Context 值变化;props 不在此列,props 是渲染的输入而非调度者。渲染不等于提交,渲染成本低,提交才触碰 DOM。
性能调试流程:感觉慢时打开 React DevTools Profiler,录制交互,寻找渲染耗时 50ms 以上的组件;若有则考虑记忆化,若无则问题可能在别处,如 API 调用过频、图片未优化、DOM 节点过多、CSS 动画触发布局。
React 19 编译器:该项目运行 React 19,React Compiler 是可选的构建时工具,能静态分析组件并自动插入等价于 useMemo、useCallback 和 React.memo 的优化,默认未启用,需要安装配置 babel-plugin-react-compiler 或 SWC 等效插件。若已启用,跳过手动记忆化;若某个组件被编译器退出优化(如渲染期间有副作用),应修复组件而非加手动 memo。若未启用(当前默认),遵循规则但优先采用架构修复(局部状态、组合)而非添加 memo/useCallback。无论编译器状态如何,组合与局部状态始终优于依赖记忆化。
用法:阅读单个规则文件获取详细解释和代码示例,如 rules/mental-model-parent-triggers.md、rules/anti-pattern-premature-memo.md、rules/architecture-local-state.md,每个规则包含重要性说明、错误代码示例和正确代码示例。
限制:资料未提供具体安装命令或更多平台定价信息。