mcpField
R
react-best-practices

react-best-practices

github.com/redpanda-data开发4.4k81 次安装今天更新
代码仓库

关于 react-best-practices

面向 React 开发者的性能优化技能,按类别和影响程度整理了 29 条规则,涵盖打包、渲染、异步处理和浏览器行为。

主要功能

  1. 01按类别和影响程度分类的 29 条规则
  2. 02打包体积优化建议
  3. 03防止重复渲染的模式
  4. 04渲染与异步处理建议
  5. 05JavaScript 与浏览器实践

适用场景

  1. 01排查组件重复渲染问题
  2. 02缩减打包体积
  3. 03检查 useEffect 和 useMemo 用法

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/redpanda-data/console --skill react-best-practices

安装后在 Claude Code 中输入/react-best-practices确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

rules/
advanced-event-handler-refs.md
advanced-use-latest.md
async-defer-await.md
async-dependencies.md
async-suspense-boundaries.md
bundle-barrel-imports.md
bundle-code-splitting.md
bundle-preload.md
client-event-listeners.md
client-passive-event-listeners.md
js-batch-dom-css.md
js-caching-patterns.md
js-index-maps.md
js-length-check-first.md
js-tosorted-immutable.md
rendering-activity.md
rendering-animate-svg-wrapper.md
rendering-conditional-render.md
rendering-content-visibility.md
rendering-hoist-jsx.md
rendering-svg-precision.md
rerender-defer-reads.md
rerender-dependencies.md
rerender-derived-state.md
rerender-functional-setstate.md
rerender-lazy-state-init.md
rerender-memo.md
rerender-simple-expression-in-memo.md
rerender-transitions.md
use-effect.md

详细介绍

React 最佳实践

适用于 Cloud UI 的客户端 React 优化模式。共 29 条规则,按类别和影响程度组织。

适用场景

  • 性能优化任务
  • 组件重复渲染问题
  • 包体积问题
  • useEffect/useMemo 模式

按类别划分的规则

包优化(CRITICAL)
规则要点
bundle-barrel-imports从源文件导入,而不是从 barrel index.ts 导入
bundle-code-splitting对大型组件使用 React.lazy + Suspense,按条件加载,并延迟加载第三方依赖
bundle-preload预加载关键资源
避免重复渲染(HIGH)
规则要点
rerender-memo对开销较大的计算进行记忆化
rerender-dependencies尽量缩小 Hook 依赖数组
rerender-derived-state在渲染期间计算,而不是在 effect 中计算
rerender-functional-setstate使用 setState(prev => ...) 避免闭包过期
rerender-lazy-state-init使用 useState(() => expensive()),而不是 useState(expensive())
rerender-simple-expression-in-memo不要对简单表达式进行记忆化
rerender-transitions对非紧急更新使用 useTransition
rerender-defer-reads在回调中读取 URL 参数 / 存储,而不是在渲染时读取
渲染(MEDIUM)
规则要点
rendering-conditional-render使用 && / 三元运算符进行短路判断,避免在 effect 中渲染
rendering-hoist-jsx将静态 JSX 移到组件外部
rendering-content-visibility对屏幕外内容使用 CSS content-visibility: auto
rendering-activity对隐藏 UI 使用 React <Activity>
rendering-animate-svg-wrapper为动画 SVG 添加包装器,以隔离重复渲染
rendering-svg-precision限制 SVG 坐标精度
异步(MEDIUM)
规则要点
async-suspense-boundaries使用细粒度的 <Suspense> 边界
async-defer-await不要等待非阻塞任务完成
async-dependencies并行加载依赖,而不是依次加载
JavaScript(MEDIUM)
规则要点
js-caching-patterns使用模块级 Map 缓存重复调用和存储读取结果
js-batch-dom-css批量执行 DOM 读取 / 写入,避免布局抖动
js-index-maps预先将数组索引到 Map 中,实现 O(1) 查找
js-length-check-first在执行开销较大的操作前检查 .length
js-tosorted-immutable使用 .toSorted() / .toReversed() 进行不可变转换

Biome 会强制执行正则表达式提升规则(useTopLevelRegex)。

浏览器(MEDIUM)
规则要点
client-event-listeners在 useEffect 的返回函数中清理事件监听器
client-passive-event-listeners为滚动 / 触摸处理器设置 { passive: true }
进阶(LOW)
规则要点
advanced-event-handler-refs使用稳定的回调 ref,避免子组件重复渲染
advanced-use-latest使用 useLatest 模式,确保回调中的值始终为最新值

评论

支持 Markdown