📦 react-best-practices — React/Next.js 最佳实践

v0.1.0

Vercel 工程团队维护的 React 和 Next.js 性能优化综合指南,包含 45 条规则,涵盖视觉稳定性、布局偏移(CLS)、闪烁、水合问题和字体加载优化等核心最佳实践,用于指导自动化重构和代码生成。

0· 32·0 当前·0 累计
wu-uk 头像by @wu-uk·MIT-0
下载技能包
License
MIT-0
最后更新
2026/4/15
0
安全扫描
VirusTotal
无害
查看报告
OpenClaw
安全
medium confidence
这是一个仅文档类的 React/Next.js 最佳实践技能,其文件和指令与声明的目的相符,看起来连贯且技术风险较低,但来源(作者/托管)不明确,因此在将其作为权威策略之前需要验证来源。
评估建议
该技能是一个 React/Next.js 最佳实践文档包,与其描述一致。风险较低,因为它只包含文本和示例代码,不请求凭证或安装。使用前有两个实用检查:(1) 验证作者/来源——元数据将 "vercel" 列为作者,但缺少注册表源/主页;确认您信任此副本后再将其作为官方策略,(2) 当您应用操纵 localStorage/cookies 或注入内联脚本的示例时,请在您的应用上下文中审查安全性(避免在 localStorage 中存储机密内容,清理任何注入的内容)。如果您需要官方 Vercel 指南,请从 Vercel 的验证网站或仓库获取,以确保您拥有权威和最新的来源。...
详细分析 ▾
用途与能力
名称/描述承诺提供性能和视觉稳定性指导;该包包含 45 个规则文件和一个带有示例和说明的 SKILL.md,直接实现该目的。没有不相关的环境变量、二进制文件或安装步骤。
指令范围
SKILL.md 和规则文件仅是文档和代码示例。它们不指示代理读取或窃取主机文件、访问凭证、运行远程端点或执行系统命令。示例在代码片段中引用 localStorage/cookies(作为使用示例),但不指示代理访问运行时环境。
安装机制
没有安装规范和打包的二进制文件——这是纯指令式的,在安装期间不会向磁盘写入代码或二进制文件,这是最低风险的安装配置。
凭证需求
没有声明所需的环境变量、凭证或配置路径。示例在应用代码上下文中提及浏览器 API(localStorage、cookies),这符合声明的目的,不是凭证请求。
持久化与权限
该技能不是强制始终运行的,不请求提升的或持久的权限。允许自主调用(平台默认),但包中没有额外的持久占用或自我修改的安装行为。
安全有层次,运行前请审查代码。

License

MIT-0

可自由使用、修改和再分发,无需署名。

运行时依赖

无特殊依赖

版本

latestv0.1.02026/4/15

从 all-task-skills-dedup 批量发布

无害

安装命令

点击复制
官方npx clawhub@latest install fix-visual-stability-react-best-practices
镜像加速npx clawhub@latest install fix-visual-stability-react-best-practices --registry https://cn.longxiaskill.com

技能文档

React 和 Next.js 应用的综合性能优化指南,由 Vercel 维护。包含 8 个类别共 45 条规则,按影响程度排序,指导自动化重构和代码生成。

何时应用

在以下情况下参考这些指南:

  • 重构现有 React/Next.js 代码
  • 编写新的 React 组件或 Next.js 页面
  • 修复视觉不稳定或布局偏移(CLS)问题
  • 防止从 localStorage 或 cookies 读取时闪烁
  • 处理客户端数据的水合不匹配
  • 优化字体加载(防止 FOIT/FOUT)
  • 为图片和动态内容添加适当的尺寸

按优先级分类的规则

优先级类别影响前缀
1消除瀑布流关键async-
2包体积优化关键bundle-
3服务端性能server-
4客户端数据获取中高client-
5重渲染优化rerender-
6渲染性能rendering-
7JavaScript 性能中低js-
8高级模式advanced-

快速参考

1. 消除瀑布流(关键)

  • async-defer-await - 将 await 移到实际使用的分支中
  • async-parallel - 对独立操作使用 Promise.all()
  • async-dependencies - 使用 better-all 处理部分依赖
  • async-api-routes - 在 API 路由中尽早启动 promises,延迟 await
  • async-suspense-boundaries - 使用 Suspense 流式传输内容

2. 包体积优化(关键)

  • bundle-barrel-imports - 直接导入,避免 barrel 文件
  • bundle-dynamic-imports - 对重型组件使用 next/dynamic
  • bundle-defer-third-party - 在水合后加载分析/日志
  • bundle-conditional - 仅在功能激活时加载模块
  • bundle-preload - 在悬停/焦点时预加载以提升感知速度

3. 服务端性能(高)

  • server-cache-react - 使用 React.cache() 进行每请求去重
  • server-cache-lru - 使用 LRU 缓存进行跨请求缓存
  • server-serialization - 最小化传递给客户端组件的数据
  • server-parallel-fetching - 重构组件以并行化获取
  • server-after-nonblocking - 使用 after() 进行非阻塞操作

4. 客户端数据获取(中-高)

  • client-swr-dedup - 使用 SWR 进行自动请求去重
  • client-event-listeners - 去重全局事件监听器

5. 重渲染优化(中)

  • rerender-defer-reads - 不订阅仅在回调中使用的状态
  • rerender-memo - 将昂贵的工作提取到记忆化组件中
  • rerender-dependencies - 在 effects 中使用原始依赖
  • rerender-derived-state - 订阅派生的布尔值,而非原始值
  • rerender-functional-setstate - 使用函数式 setState 获得稳定的回调
  • rerender-lazy-state-init - 为昂贵值向 useState 传递函数
  • rerender-transitions - 使用 startTransition 进行非紧急更新

6. 渲染性能(中)

  • rendering-animate-svg-wrapper - 动画化 div 包装器,而非 SVG 元素
  • rendering-content-visibility - 对长列表使用 content-visibility
  • rendering-hoist-jsx - 将静态 JSX 提取到组件外部
  • rendering-svg-precision - 降低 SVG 坐标精度
  • rendering-hydration-no-flicker - 对客户端数据使用内联脚本
  • rendering-activity - 使用 Activity 组件进行显示/隐藏
  • rendering-conditional-render - 使用三元运算符,而非 && 进行条件渲染

7. JavaScript 性能(中-低)

  • js-batch-dom-css - 通过 classes 或 cssText 分组 CSS 更改
  • js-index-maps - 为重复查找构建 Map
  • js-cache-property-access - 在循环中缓存对象属性
  • js-cache-function-results - 在模块级 Map 中缓存函数结果
  • js-cache-storage - 缓存 localStorage/sessionStorage 读取
  • js-combine-iterations - 将多个 filter/map 合并为一个循环
  • js-length-check-first - 在昂贵比较之前检查数组长度
  • js-early-exit - 从函数提前返回
  • js-hoist-regexp - 将 RegExp 创建提升到循环外部
  • js-min-max-loop - 使用循环求 min/max,而非 sort
  • js-set-map-lookups - 使用 Set/Map 进行 O(1) 查找
  • js-tosorted-immutable - 使用 toSorted() 保持不可变性

8. 高级模式(低)

  • advanced-event-handler-refs - 在 refs 中存储事件处理器
  • advanced-use-latest - 使用 useLatest 获得稳定的回调 refs

如何使用

阅读各个规则文件以获取详细说明和代码示例:

rules/async-parallel.md
rules/bundle-barrel-imports.md
rules/_sections.md

每个规则文件包含:

  • 简要说明为什么它很重要
  • 带说明的错误代码示例
  • 带说明的正确代码示例
  • 其他上下文和参考
数据来源ClawHub ↗ · 中文优化:龙虾技能库