WHAT - Vercel react-best-practices 系列(一)

文章目录

  • 前言
  • Guidelines
  • Critical Patterns
    • 1. Eliminate Waterfalls(消灭瀑布流)
      • Defer await until needed
        • 核心问题
        • 反例:无论是否需要,先 await
        • 推荐:await 放进条件分支
        • 典型业务场景
        • 本质总结
      • Use Promise.all for independent async operations
        • 核心问题
        • 反例:人为制造瀑布
        • 推荐:并行执行
        • 典型业务场景
        • 注意
      • Start promises early, await late
        • 核心问题
        • 反例:逻辑写在一起
        • 推荐:先启动,再 await
        • 在 Server Components 中非常重要
        • 本质总结
      • Use “better-all” for partial dependencies
        • 场景
        • 反例:全串行
        • 推荐:拆依赖 + Promise.all
        • 总结模式(建议记住)
      • Use Suspense boundaries to stream content
        • 核心问题
        • 反例:全部等完才渲染
        • 推荐:Suspense 分片流式渲染
        • 真实收益
    • 2. Reduce Bundle Size(减少 JS 体积)
      • Avoid barrel file imports
        • 反例
        • 推荐:直接引入
        • 在大项目中差异极大
      • Use `next/dynamic` for heavy components
        • 场景
        • 反例:同步加载
        • 推荐:动态加载
        • 好处
      • Defer non-critical third-party libraries
        • 场景
        • 反例:首屏直接加载
        • 推荐:用户交互后加载
      • Preload based on user intent
        • 场景
        • 示例:hover 预加载
        • Next.js 路由预加载
    • 总结

前言

react-best-practices

React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.

Guidelines


在这个系列,我会逐条拆解,每一条都给出:

  • 核心问题是什么
  • 为什么会慢(本质原因)
  • 典型业务场景
  • 反例代码
  • 推荐写法
  • 在 React / Next.js 中的实际收益

Critical Patterns

这是系列的第一部分。

1. Eliminate Waterfalls(消灭瀑布流)

Waterfall = 一个 async 等完了,才开始下一个 async

本质问题:不必要的串行等待

Defer await until needed

核心问题

很多代码在逻辑上并不一定需要执行异步操作,但你却提前await了。

反例:无论是否需要,先 await
asyncfunctiongetPageData(userId?:string){constuser=awaitfetchUser(userId)// ❌ userId 可能是 undefinedif(!userId){return{isGuest:true}}return{user}}

问题:

  • 即使是访客页面,也发起了请求
  • 增加不必要的 RTT
推荐:await 放进条件分支
asyncfunctiongetPageData(userId?:string){if(!userId){return{isGuest:true}}constuser=awaitfetchUser(userId)return{user}}
典型业务场景
  • 登录态判断
  • feature flag
  • AB 实验
  • 只有某个 tab / role 才需要的数据
本质总结

await 是阻塞点,越晚越好

Use Promise.all for independent async operations

核心问题

彼此没有依赖关系的请求,却被串行执行

反例:人为制造瀑布
constuser=awaitfetchUser()constorders=awaitfetchOrders()constnotifications=awaitfetchNotifications()

总耗时 ≈user + orders + notifications

推荐:并行执行
const[user,orders,notifications]=awaitPromise.all([fetchUser(

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1164592.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据合规律师必考七大证书:全面提升职场竞争力

在企业的数字化转型浪潮中,数据合规已成为法律人不可忽视的业务蓝海。随着《数据安全法》《个人信息保护法》等法规的深入实施,数据合规人才需求爆发性增长,具备专业资质的法律人才薪资平均比普通法务高出400%。一、CISP(注册信息…

AI大模型全景指南,从小白到程序员的完全学习手册

AI大模型作为新一代人工智能核心驱动力,已进入应用与智能体时代。产业链分为基础层(算力、数据、算法、云服务)、模型层(通用/行业大模型、MaaS)和应用层(To B/C场景),配以支撑服务提…

救命!挖到就业黄金赛道!2025 网安缺口 327 万,零基础入门到精通,收藏即通关!

《信息安全毕业主推的6大岗位(2025真实版)》 **关于我:资深IT专家,AI布道者,15年实战老兵多本专业图书作者大厂技术面试官。 ** 根据2024年官方公布的数据显示,到2027年我国网络安全人员缺口将达327万。 尽管全国已有6…

携手订单日记,圣力树开启智能升级之路

一、客户背景 惠州圣力树工艺品有限公司,成立于2016年,位于广东省惠州市惠阳区,是一家以从事销售圣诞制品、工艺品等产品为主的企业。 在业务不断壮大的过程中,面临生产效率低、统计数据麻烦等问题,需要一种既能提升运…

国家战略急需!网安工程师年薪真能过百万?好不好入行一篇说透!

针对时下大火的“网络安全工程师”,网络出现不少相关报导和信息: 下面就来跟大家分享一下网络安全工程师工资待遇,给大家作为一个参考。 不同工作经验的待遇水平 其中应届生工资¥6070,1-3年工资¥8820,3-5年工资&…

基于社区宠物管理

基于社区的宠物管理系统设计与实现 第一章 系统整体架构设计 基于社区的宠物管理系统以“规范饲养、安全保障、邻里和谐”为核心目标,采用“前端交互-后端服务-数据管理”三层架构。系统核心包含五大功能模块:宠物档案管理模块、免疫接种模块、社区活动模…

8个降AI率工具推荐!研究生高效降AIGC神器合集

8个降AI率工具推荐!研究生高效降AIGC神器合集 AI降重工具:论文优化的高效助手 在当今学术研究日益依赖人工智能辅助写作的背景下,如何有效降低AIGC率、去除AI痕迹并保持论文的原创性,成为研究生们必须面对的挑战。随着各大高校对A…

基于ASP.NET及HTML的高校官网设计

基于ASP.NET及HTML的高校官网设计 第一章 系统整体架构设计 基于ASP.NET及HTML的高校官网以“信息公开、服务师生、塑造形象”为核心目标,采用“表现层-业务逻辑层-数据访问层”三层架构。系统核心包含六大功能模块:首页展示模块、学校概况模块、教学科研…

网安冰火两重天:480 万缺口下,裁员潮 + 一线饱和 + 二三线降薪 30%,核心缺高端实战人才!

上海网络安全人才的就业格局:高端人才争夺激烈但门槛高,基础岗位门槛降低且同质化加剧,安全威胁复杂化与合规压力同步攀升。 2025年上海网络安全岗位招聘量为1853个,较2023年增长8%。行业集中于互联网(31%)…

告别文献 “乱炖”!宏智树 AI 手把手教你写出有灵魂的文献综述

作为深耕论文写作科普的教育博主,后台总能刷到这样的求助:“读了几十篇文献,写出来的综述像‘大杂烩’”“观点堆砌没逻辑,被导师批‘没找到研究缺口’”“参考文献格式错一堆,查重率还居高不下”。文献综述不是简单的…

UE5 C++(32):进度条 Progress 的实现

(171) (172) 谢谢

【拯救HMI】HMI国际化设计:多语言界面的十大注意事项

在全球化制造的今天,一台由中国设计的设备可能安装在德国工厂,由越南操作员使用。HMI的国际化(i18n)与本地化(L10n)设计,是产品成功进入国际市场的“通行证”,其核心目标是消除语言障…

手把手教你8款AI论文工具实操:知网维普查重一把过无AIGC痕迹

一、为什么你需要AI论文工具?——用户痛点直击 对于大学生、研究生、科研人员来说,论文写作往往伴随四大核心痛点: 时间紧:从选题、列提纲到成稿动辄数月,临近截止才开工会陷入焦虑。写作难:缺乏结构化思…

AI 写论文哪个软件最好?实测宏智树 AI:毕业论文的 “学术增效神器”

作为深耕论文写作科普的教育测评博主,每年毕业季后台都会被 “AI 写论文哪个软件最好” 的提问刷屏。市面上的 AI 写作工具层出不穷,有的只能生成碎片化文字,有的文献引用漏洞百出,有的查重结果与学校标准脱节。经过多轮实测对比&…

【拯救HMI】HMI容错设计:如何减少操作失误并快速纠错?

在复杂、高压的工业环境中,操作失误难以完全避免。容错设计的哲学不是追求“零错误”,而是承认“人会犯错”,并通过系统设计来 “预防错误发生、减轻错误后果、提供快速恢复路径” ,将人为失误对生产系统的影响降至最低。一、 预防…

写论文软件哪个好?实测揭秘:宏智树 AI 凭全流程服务成学术刚需

作为深耕论文写作科普的教育测评博主,后台每天都被 “写论文软件哪个好” 的提问刷屏。市面上的 AI 写作工具五花八门,有的只管文字拼接却虚构文献,有的只能做简单润色却解决不了实证分析难题。经过多轮深度实测,我发现宏智树 AI才…

e算商城域名切换公告

尊敬的用户:为进一步优化平台访问体验与品牌统一,北方算网 e算商城计划对业务访问域名进行升级调整,现将有关事项公告如下:一、切换时间计划时间:2026 年 1 月 15 日(星期四)18:00–20:00 二、域…

宏智树 AI:ChatGPT 学术版驱动的 AI5.0 学术创作全生态解决方案

当学术研究遇上智能科技,论文写作的低效内卷从此成为历史。宏智树 AI,一款由 ChatGPT 学术版模型深度驱动、搭载前沿 AI5.0 技术架构的专业学术智能解决方案平台,以 “真实、专业、高效、全流程” 为核心,重塑学术创作全新生态&am…

今天必须跟你们聊聊GLM-Image这事儿

今天早上我刚打开电脑,就看到智谱AI发布了GLM-Image。 我第一反应是:又来一个生图模型? 但当我仔细看完技术报告之后,整个人都坐直了。 兄弟们,这次真的不一样。我在AI这个圈子混了这么久,见过太多"…

5 款 AI 写论文哪个好?实测宏智树 AI:毕业论文的 “学术全能王”

作为深耕论文写作科普的教育测评博主,每年毕业季后台都会被 “AI 写论文工具怎么选” 的提问淹没。市面上的 AI 论文工具五花八门,但真正能兼顾专业性、合规性与实用性的却寥寥无几。为此,我实测了 5 款当下热门的真实 AI 写论文工具 ——宏智…