react-best-practices

Polar Sponsor
爱发电 赞助
.NET 9.0

重要:对 React 或 Next.js 代码的任何更改必须先阅读本技能。Vercel 工程团队的 React 与 Next.js 指南,涵盖可视化...

Vercel React Best Practice.

功能概述

Vercel React Best Practice.是一项面向实际任务的技能,主要用于React and Next.js 应用程序综合性能优化指南,由Vercel维护.;Contact 共 4 类规则 , 共 8 类, 按影响排序。

核心要点

  • 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
  • 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
  • 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。

使用与执行

从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;

结果检查与注意事项

若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

Vercel React 最佳实践

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

适用场景

在以下情况下可参考本指南:

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

按优先级划分的规则类别

优先级 类别 影响程度 前缀
1 消除瀑布式请求(Eliminating Waterfalls) CRITICAL async-
2 包体积优化(Bundle Size Optimization) CRITICAL bundle-
3 服务端性能(Server-Side Performance) HIGH server-
4 客户端数据获取(Client-Side Data Fetching) MEDIUM-HIGH client-
5 重渲染优化(Re-render Optimization) MEDIUM rerender-
6 渲染性能(Rendering Performance) MEDIUM rendering-
7 JavaScript 性能(JavaScript Performance) LOW-MEDIUM js-
8 高级模式(Advanced Patterns) LOW advanced-

快速查阅

1. 消除瀑布式请求(CRITICAL)

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

2. 包体积优化(CRITICAL)

  • bundle-barrel-imports — 直接导入模块,避免通过 barrel 文件导入
  • bundle-dynamic-imports — 对重型组件使用 next/dynamic
  • bundle-defer-third-party — 在水合完成后再加载分析/日志等第三方脚本
  • bundle-conditional — 仅在功能启用时才加载对应模块
  • bundle-preload — 在悬停(hover)或聚焦(focus)时预加载资源,提升感知速度

3. 服务端性能(HIGH)

  • server-cache-react — 使用 React.cache() 实现每个请求内的去重缓存
  • server-cache-lru — 使用 LRU 缓存实现跨请求缓存
  • server-serialization — 最小化传递给客户端组件的数据量
  • server-parallel-fetching — 重构组件结构,使多个 fetch 请求并行执行
  • server-after-nonblocking — 使用 after() 执行非阻塞操作

4. 客户端数据获取(MEDIUM-HIGH)

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

5. 重渲染优化(MEDIUM)

  • rerender-defer-reads — 不要订阅仅在回调中使用的状态
  • rerender-memo — 将耗时计算提取到 memoized 组件中
  • rerender-dependencies — 在 useEffect 等副作用中使用原始类型作为依赖项
  • rerender-derived-state — 订阅派生布尔值而非原始值
  • rerender-functional-setstate — 使用函数式 setState 保证回调稳定性
  • rerender-lazy-state-init — 对于开销较大的初始值,向 useState 传入初始化函数
  • rerender-transitions — 对非紧急更新使用 startTransition

6. 渲染性能(MEDIUM)

  • rendering-animate-svg-wrapper — 动画作用于 div 包裹层,而非 SVG 元素本身
  • rendering-content-visibility — 对长列表使用 content-visibility
  • rendering-hoist-jsx — 将静态 JSX 提取到组件外部
  • rendering-svg-precision — 降低 SVG 坐标精度
  • rendering-hydration-no-flicker — 使用内联 script 注入客户端专属数据,避免闪烁
  • rendering-activity — 使用 Activity 组件控制显示/隐藏逻辑
  • rendering-conditional-render — 条件渲染优先使用三元运算符,而非 &&

7. JavaScript 性能(LOW-MEDIUM)

  • js-batch-dom-css — 通过 class 或 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 — 函数中尽早 return 退出
  • js-hoist-regexp — 将正则表达式创建提升至循环外部
  • js-min-max-loop — 使用循环而非 sort 查找最小/最大值
  • js-set-map-lookups — 使用 Set/Map 实现 O(1) 时间复杂度查找
  • js-tosorted-immutable — 使用 toSorted() 保证不可变性

8. 高级模式(LOW)

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

如何使用

请阅读各条规则的独立文件,获取详细说明与代码示例:

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

每条规则文件均包含以下内容:

  • 该规则重要性的简要说明
  • 错误代码示例及其问题分析
  • 正确代码示例及其优化原理
  • 补充上下文与参考资料

相关专题

更多
JavaScript React组件优化与性能提升实战
JavaScript React组件优化与性能提升实战

本专题围绕 React 框架在大型前端项目中的性能优化展开,讲解组件生命周期优化、虚拟 DOM 原理、状态管理策略及懒加载技术。通过实战案例,帮助开发者构建性能优良、响应迅速的前端应用。

2026.04.13

165

18

React 18状态管理与Hooks高级实践
React 18状态管理与Hooks高级实践

本专题专注于 React 18 的高级开发技术,详细讲解 useState、useEffect、useReducer、useContext 等 Hooks 的使用技巧,以及 Redux、Zustand 等状态管理工具的集成与优化方法。通过真实案例,帮助前端开发者构建可维护、性能优良的现代 React 应用。

2026.02.10

183

17

FrankenPHP集成Laravel详细教程
FrankenPHP集成Laravel详细教程

本专题提供FrankenPHP集成Laravel的详细配置指南,全面解析运行原理、开发环境搭建、Caddyfile配置、Octane工作模式、数据库连接、队列任务、定时任务和生产环境优化,解决部署过程中常见的报错与兼容性问题。

2026.10.08

0

20

LLVM自定义Pass怎么写
LLVM自定义Pass怎么写

本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。

2026.09.30

0

10

LLVM RISC-V参数配置教程
LLVM RISC-V参数配置教程

本专题介绍LLVM对RISC-V基础ISA和扩展的支持方式,涵盖RV32、RV64、标准扩展、实验性扩展、厂商扩展、-menable-experimental-extensions和版本差异。

2026.09.30

0

14

LLVM IR中间表示入门指南
LLVM IR中间表示入门指南

本专题整理LLVM IR的核心概念,包括中间表示作用、模块结构、函数、基本块、SSA形式、类型系统和常见语法,帮助新手理解LLVM编译流程中的关键层。

2026.09.30

0

12

PDF转图片方法
PDF转图片方法

需要把 PDF 页面用于上传、预览、分享或图片归档时,PDF 转图片方法专题整理 JPG/PNG 格式选择、逐页导出、清晰度设置、批量下载和结果检查等流程,帮助用户稳定完成 PDF 图片化处理。

2026.09.30

0

26

PixTV AI视频生成与无限画布创作
PixTV AI视频生成与无限画布创作

PixTV专题整理AI视频与视觉内容创作相关功能使用教程,涵盖AI生图、视频生成、无限画布、多模型创作、素材管理、声音音乐及视频剪辑等功能,帮助用户快速掌握PixTV从创意到成片的完整制作方法。

2026.09.29

0

15

Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

2026.09.23

0

15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
React 教程
React 教程

共58课时 | 12.1万人学习

国外Web开发全栈课程全集
国外Web开发全栈课程全集

共12课时 | 1.4万人学习