技能 react-best-practices
📦

react-best-practices

安全

使用 Vercel 最佳实践优化 React 和 Next.js 性能

也可从以下获取: vercel-labs,0xBigBoss,0xBigBoss

React 性能不佳会导致加载缓慢和用户不满。本技能提供来自 Vercel 工程团队的 45 条优先规则,帮助消除瀑布流请求、减少打包体积并优化渲染性能。

支持: Claude Codex Code(CC)
🥉 73 青铜
1

下载技能 ZIP

2

在 Claude 中上传

前往 设置 → 功能 → 技能 → 上传技能

3

开启并开始使用

测试它

正在使用“react-best-practices”。 审查此数据获取模式是否存在瀑布流问题

预期结果:

  • 问题:顺序 await 调用创建瀑布流(3 轮请求)
  • const user = await fetchUser()
  • const posts = await fetchPosts()
  • const comments = await fetchComments()
  •  
  • 修复:使用 Promise.all() 并行执行(1 轮请求)
  • const [user, posts, comments] = await Promise.all([
  • fetchUser(),
  • fetchPosts(),
  • fetchComments()
  • ])

正在使用“react-best-practices”。 如何懒加载重量级代码编辑器组件

预期结果:

  • 使用 next/dynamic 懒加载重量级组件:
  •  
  • import dynamic from 'next/dynamic'
  •  
  • const MonacoEditor = dynamic(
  • () => import('./monaco-editor').then(m => m.MonacoEditor),
  • { ssr: false, loading: () => <LoadingSkeleton /> }
  • )
  •  
  • 这会将约 300KB 的打包延迟到组件渲染时,提高 TTI。

安全审计

安全
v1 • 2/24/2026

Static analyzer detected 912 patterns but all are FALSE POSITIVES. The skill contains markdown documentation with code examples for educational purposes, not executable code. Patterns like 'backtick execution' are shell commands in README examples (pnpm build), 'dynamic imports' are React next/dynamic usage examples, 'storage access' shows localStorage caching patterns, and 'network' patterns are fetch API documentation examples. No actual security vulnerabilities exist.

51
已扫描文件
4,906
分析行数
0
发现项
1
审计总数
未发现安全问题
审计者: claude

质量评分

38
架构
100
可维护性
85
内容
50
社区
100
安全
83
规范符合性

你能构建什么

前端开发 React 应用

在编写新组件或页面时使用此技能,确保从一开始就具有最佳性能。该技能指导打包优化、正确的数据获取模式和重新渲染预防技术。

技术负责人审查拉取请求

在代码审查期间参考这些规则,在合并之前捕获性能反模式,如顺序异步调用、不必要的 barrel 导入或缺失的 Suspense 边界。

AI 助手重构遗留代码

应用这些优先级规则系统性地改进现有 React 代码库,首先处理关键的瀑布流消除,然后解决中等影响的渲染优化问题。

试试这些提示

审查组件的性能问题
使用 Vercel 最佳实践审查此 React 组件。识别瀑布流、不必要的重新渲染和打包优化机会。提供具体的修复建议和代码示例。
将顺序获取重构为并行
重构此代码以消除异步瀑布流。对独立操作使用 Promise.all() 并将 await 移动到实际需要结果的地方。
优化重量级组件的打包体积
对此组件应用代码分割策略。识别 next/dynamic 导入、条件加载和用户交互时预加载的机会。
修复重新渲染性能问题
分析此组件的不必要重新渲染问题。根据情况应用记忆化、正确的依赖数组、派生状态订阅和函数式 setState 模式。

最佳实践

  • 在中等影响优化之前先处理关键的瀑布流消除
  • 使用 React.cache() 进行每请求去重,使用 LRU 缓存进行跨请求缓存
  • 使用函数式 setState 提取稳定的回调,必要时将处理程序存储在 refs 中

避免

  • 对独立操作使用顺序 await 调用
  • 导入整个工具库而不是特定函数
  • 直接将函数作为 effect 依赖传递而不是原始值

常见问题

支持哪些 React 版本?
大多数模式适用于 React 17+。高级模式如 startTransition、useTransition 和用于数据获取的 Suspense 需要 React 18+。
我可以使用 JavaScript 而不是 TypeScript 吗?
可以,所有模式都适用于 JavaScript 项目。示例使用 TypeScript 语法以提高清晰度,但概念可直接迁移。
我应该一次性应用所有 45 条规则吗?
不需要。首先应用 CRITICAL 优先级规则(异步瀑布流、打包优化)以获得最大影响,然后逐步解决 HIGH 和 MEDIUM 优先级问题。
此技能适用于 Next.js App Router 吗?
可以。像 React.cache()、use cache() 和服务端并行获取这样的服务端组件模式是专门为 App Router 架构设计的。
如何衡量性能改进?
使用 Web Vitals(LCP、FID、CLS)和 React DevTools Profiler。该技能为每个模式提供影响评估,如「2-10 倍改进」。
Claude Code 可以自动应用这些修复吗?
可以。提供技能上下文并要求 Claude Code 审查或重构特定文件。它将应用适当的规则并提供代码示例。

开发者详情