React 19 vs Vue 3:差异、权衡与如何选择
比较 React 19 与 Vue 3,在开发者体验、性能、SSR、状态管理与工具链方面提供实用指南,帮助你为下一个应用选择最合适的框架。

React 19 vs Vue 3:我们在比较什么
本指南将从团队实际体验出发,比较 React 19 和 Vue 3:把它们看作一组影响交付速度、可维护性、招聘和长期产品成本的权衡。我们不讨论“哪个更好”,而聚焦于每个框架优化的方向——以及这在日常开发中的含义。
本比较涵盖的内容
我们将关注影响真实项目的实操领域:组件编写、状态与数据获取方式、渲染选项(客户端 vs 服务端)、在生产中你会感受到的性能因素,以及周边生态(工具链、库和约定)。目标是帮助你预测六个月后构建和运营该应用的真实感受,而不仅仅是第一个演示的感觉。
谁应该读这篇
适合:
- 正在启动新 Web 应用并需选择默认 UI 框架的团队
- 因为扩展、招聘或性能需要重新评估栈的团队
- 想要基于约束做出明确决策的产品负责人和技术负责人
关于版本与生态的一点说明
“React 19”和“Vue 3”并非单一整体。你的体验取决于相关选择——路由、SSR 框架、构建工具和常用库。我们会区分哪些行为是 React/Vue 的核心特性,哪些是由常见配套工具塑造的。
如何使用本指南
把它当成检查表:先明确约束(是否需要 SSR、团队技能、无障碍要求、发布节奏),再看哪个框架更匹配。当多个选择都可行时,选能为你们组织降低风险的那个,而不是热度最高的一个。
核心概念与心智模型
React 和 Vue 都帮助你用可复用组件构建 UI,但它们鼓励不同的思路:组件是什么、逻辑应当放在哪儿。
React:组件、JSX 与常见模式
在 React 19 中,核心心智模型依旧是:UI 是状态的函数。你描述在某个状态下 UI 应该是什么样子,React 在状态变化时更新 DOM。
React 常用 JSX,可以在 JavaScript 中直接书写类 HTML 的标记。因此渲染逻辑、条件语句和小转换往往与标记并列。常见模式包括组合小组件、将共享状态抬升、以及使用 hooks 来处理状态、副作用和逻辑复用。
Vue:单文件组件、模板与响应式系统
Vue 3 的心智模型是:响应式系统驱动你的模板。Vue 跟踪 UI 所依赖的值,只更新需要变化的部分。
大多数 Vue 应用用的是 单文件组件(SFC):一个 .vue 文件里包含模板(标记)、脚本(逻辑)和样式。模板语法更接近 HTML,带有循环、条件和绑定的指令。Vue 3 的 Composition API 使按功能组织代码变得容易(例如“搜索行为”或“表单校验”),而不是按选项类型分散代码。
每个框架如何引导 UI 与逻辑结构
React 倾向于推动“以 JavaScript 为先”的组件编写,抽象通常通过函数和 hooks 实现。Vue 则鼓励在 SFC 内更明确地区分UI 长什么样(模板)和如何工作(脚本),同时仍允许在同一文件中紧密配合。
与基础 HTML/CSS/JS 的学习曲线
如果你熟悉 HTML、偏好模板,Vue 在早期通常更容易上手。React 也能很快上手,但 JSX(以及如何建模状态与副作用)对初学者或不常写复杂 JavaScript UI 的人来说,可能是更大的心态转变。
新特性要点:React 19 与 Vue 3 的亮点
React 19 与 Vue 3 并非仅是“版本更新”——它们反映了不同的构建 UI 的下注方向。React 19 更注重让渲染与异步 UI 流更平滑;Vue 3 的主打是 Composition API,重塑了组织组件逻辑的方式。
React 19:渲染方向(以及并发概念的简明解释)
React 朝着可以中断、优先级调度并恢复渲染的模型发展,以便在昂贵更新时保持应用响应。你无需记住内部实现细节;实操上就是:React 尽力让打字、点击和滚动保持流畅,即便同时在加载数据或重新渲染。
日常影响:你会更多地考虑“哪些内容能先展示”与“哪些可以等待”,尤其是在加载状态和过渡上。这些能力很多是可选的——应用仍可以以简单方式构建——但在复杂界面、大组件或频繁更新场景下很有价值。
Vue 3:Composition API 与代码组织
Vue 3 的 Composition API 侧重按功能组织组件代码,而非按 data/methods/computed 等选项区块拆分。你可以把相关状态、派生值和处理器放在一起,而不是散落到多个部分。
日常效果为:重构更容易,提取可复用“composable”更自然,大型组件可按关注点拆分而无需大范围重写。注意:Composition API 很强大,但不是强制的——团队觉得 Options API 更清晰时仍可使用。
何时这些差异重要(何时不重要)
如果你的应用很简单,“新特性”可能并不显眼。它们在代码库扩展、需要协调大量 UI 状态或在负载下保持交互顺滑时最有用。
性能:需要评估的真实因素
React 19 与 Vue 3 的性能差异很少能用一句“哪个更快”来判断。关键在于应用如何加载、更新频率以及更新时要做多少工作。
首次加载:打包、分割与用户实际下载的内容
首次加载通常受网络与 JS 解析/执行时间主导。无论框架,主要优化通常是:
- 保持主包体积小(避免引入未用的 UI 库、图标和 polyfill)
- 对路由和重型组件进行代码分割(图表、编辑器、管理后台)
- 懒加载非关键功能(模态、引导、很少用的设置)
React 应用常用路由级分割结合流行路由器和打包器;Vue 生态也支持良好的分割模式。实际影响更取决于依赖选择(组件库、状态工具、日期库)而非框架核心。
运行时开销:响应式 vs 重新渲染
Vue 的响应式系统只更新受影响的 DOM 部分。React 的模型会重新渲染组件并依靠协调算法来做最小 DOM 更改,必要时可用 memoization 优化。
两种方式并不天然更“便宜”。Vue 应用如果响应式状态定义过宽也会做过多工作;React 应用若组件结构良好、更新局部化,也能非常快。
性能分析:找瓶颈,而不是争辩
把性能当作调试任务:
- 定位慢交互(输入、过滤、导航)
- 测量(性能分析器、performance marks、网络瀑布图)
- 优先修复贡献最大的因素(通常是数据量、昂贵渲染或过多更新)
实操建议:用你的应用来测量
避免微基准测试。组件树深度、数据大小、第三方控件和渲染模式会主导结果。为最有风险的屏做一个小型样板(spike),尽早分析,并仅在用户能感受到时才优化。
SSR、hydration 与 SEO
服务端渲染(SSR)主要是从服务器发送真实 HTML,让首屏更快出现,并使搜索引擎(和社交预览)能可靠读取内容。React 和 Vue 都能很好地做 SSR——但大多数团队不会手写 SSR,而是选用元框架。
SSR 选项:React vs Vue
对于 React 19,SSR 常见做法是用 Next.js(也有 Remix 或自定义方案)。对于 Vue 3,通常用 Nuxt。这些框架处理路由、打包、代码分割和“服务器 + 客户端”协调,满足 SEO 和快速首屏所需。
实用的思考方式:
- React + Next.js:每个路由有多种渲染选项(静态、SSR、部分流式),且主机支持广泛。
- Vue + Nuxt:面向 Vue 的约定化 SSR,Nuxt 模块提供连贯的全栈体验。
Hydration:是什么(可能出错的地方)
SSR 发送 HTML 后,浏览器仍需 JavaScript 让页面可交互。Hydration 是客户端把事件处理器“挂”到已有 HTML 上的步骤。
常见问题:
- Hydration 不匹配:服务器生成的 HTML 与客户端渲染不一致。常见原因有时间戳、随机 ID、区域设置差异或在首次渲染时读取
window。 - 闪烁或布局跳动:服务器显示一套内容,而客户端在数据或 feature flag 加载后替换为另一套。
通常的修复是保持服务端与客户端渲染确定性、把仅限浏览器的逻辑延迟到挂载后执行,并把加载状态处理得更有意图。
流式与部分渲染(通俗说法)
流式渲染意味着服务器可以分块发送页面,让用户更早看到内容,而不是等所有东西都准备好再发送。部分渲染指页面的部分可以独立渲染——当某些区块依赖较慢数据时很有用。
它能提升感知性能和 SEO(重要内容更早到达),但会增加数据获取、缓存和调试的复杂度。
部署权衡:传统服务器、无服务器、边缘
SSR 的运行环境影响成本与行为:
- 传统服务器:性能可预测、缓存易于管理,但需自己运维。
- 无服务器(serverless):自动扩展、按使用付费;冷启动和执行限制可能影响 SSR。
- 边缘:离用户更近,延迟低;适合个性化,但可能限制运行时特性并增加可观测性难度。
如果 SEO 很关键,SSR 往往值得投入——但最合适的方案是你团队能在生产中自信运维的那种。
状态管理与数据获取
状态会让框架选择在日常工作中“变得真实”:数据存放在哪里、谁能修改它、在请求进行时如何保持 UI 一致性?
React 的状态选项
React 提供了一个轻量核心和多种扩展方式:
- 组件本地状态用
useState/useReducer,适合仅与组件相关的关注点(开关、表单草稿值)。 Context用于在子树中共享值(主题、当前用户)。有用但在高动态数据场景下可能导致大量重新渲染。- 外部状态库(Redux Toolkit、Zustand、Jotai、MobX)在多处需要共享客户端状态、并需要明确更新规则时很常见。
- 服务端状态工具(TanStack Query/React Query、SWR、Apollo、RTK Query)通常是“来自后端的数据”的最佳选择,因为它们处理缓存、后台刷新、重试、分页等。
React 19 在异步渲染方面的改进有助于在更新时保持 UI 响应,但对于数据密集界面,通常还是会采用服务端状态库。
Vue 的状态选项
Vue 的内建响应式让共享状态更“原生”感觉:
- 响应式原语(
ref、reactive)和 composable 可以把状态 + 逻辑打包成可复用单元。 provide/inject可在组件树中共享值,避免 props 穿透。Pinia是首选的全局客户端状态管理;Vuex在 Vue 3 项目中已大多成为历史选项。
在数据获取上,很多 Vue 团队通过 Nuxt 约定(例如 useFetch/useAsyncData)标准化,或与 TanStack Query 配合使用。
异步数据、缓存与乐观更新
两个生态都支持加载状态、请求去重、缓存失效策略和乐观更新(在服务器确认前更新 UI)。最大区别在于惯例:React 应用更常“安装一个解决方案”,而 Vue 应用可能先用内建响应式,随着应用增长再引入 Pinia/Query 工具。
实用指南
选择满足应用规模的最简单工具:
- 从本地状态 + 简单获取开始。
- 当缓存与同步变痛苦时,加入服务端状态库。
- 仅在确实存在非服务器共享的客户端状态时,才加入全局存储。
工具链与生态
工具链会让 React 与 Vue 感觉不像“框架”,而更像你将采纳的一套默认实践。两者都能在第一天就高效,但长期体验取决于哪个生态约定更符合你团队。
React 工具链:Vite、Next.js、lint、类型检查、测试
轻量 React 项目常从 Vite 开始——开发服务器快、配置简单、插件生态大。生产级应用默认会选 Next.js,提供路由、SSR 和数据获取模式,并往往驱动社区最佳实践。
质量保证通常是 ESLint + Prettier,加上 TypeScript。测试通常用 Vitest 或 Jest 做单元测试,Playwright 或 Cypress 做端到端测试。好处是选择多,代价是团队有时需花时间对齐“技术栈”。
Vue 工具链:Vite、Nuxt、Vue Devtools、测试
Vue 的官方工具往往感觉更一体化。Vite 也是主流选择,Nuxt 是最接近 Next.js 的解决方案,提供路由、SSR 和应用结构。
Vue Devtools 很突出:检查组件状态、props 和事件通常更直观,这对新成员调试特别有帮助。
TypeScript 体验:易用性与常见痛点
React + TypeScript 已成熟、文档丰富,但高级模式可能产生冗长类型(泛型、children 类型、高阶组件)。Vue 3 的 Composition API 大幅改善了 TypeScript 体验,但在为复杂组件 props/emits 或兼容旧 Options API 时,部分团队仍会遇到类型细节问题。
组件库与设计系统兼容性
React 的组件库选择最广、企业设计系统工具也多。Vue 也有强选项,但可能找不到某些 React 首发库的“开箱即用”集成。如果公司已有设计系统,先确认是否提供 React/Vue 绑定,或是否会统一采用 web components。
开发者体验与组件编写
开发者体验不仅关乎“手感好不好”。它影响团队交付速度、代码审查效率以及几个月后重构的信心。React 19 和 Vue 3 都支持现代的基于组件开发,但鼓励不同的编写风格。
可读性与可维护性:JSX vs 模板
React 默认使用 JSX:UI 在 JavaScript 中表达,条件、循环和小助手函数便于与标记同处。优点是一门语言和一套工具;缺点是组件膨胀时 JSX 会变得冗长,尤其嵌套条件很多时。
Vue 的 SFC 通常把模板、脚本与样式区分开。许多团队觉得模板更易浏览,因为看起来像 HTML,而逻辑在 script 中。缺点是存在“回退到纯 JavaScript”的出口,但通常你会使用 Vue 特定的指令与约定。
可复用逻辑:hooks vs composables
React 的 hooks 模型鼓励把可复用行为做成函数(自定义 hooks)。它强大且惯用,但需要一致的约定(命名以及 effects/依赖的规则)。
Vue 的 composables 在理念上类似:返回响应式状态和辅助函数的可复用函数。许多开发者喜欢它与 Vue 响应式的整合,但团队依然需要约定文件结构与命名,避免变成“工具杂烩”。
样式方案:CSS Modules、styled、SFC scoped CSS
React 项目在 CSS Modules、原子类工具或 CSS-in-JS/ styled 之间选择。灵活性高,但若不早期达成共识会使代码库分裂。
Vue SFC 默认支持 scoped CSS,减少全局样式冲突,使用方便。不过团队仍需定义共享设计变量和组件样式规则以防不一致。
团队工作流:代码审查、约定与一致性
React 生态给出多种合法解法,若不记录约定会增加审查成本。Vue 倾向通过 SFC 结构和模板约定引导更统一的组件布局,有利于入门与审查——前提是团队已对 Composition API 的模式与命名达成一致。
无论选哪种框架,都可以用简短的“组件检查表”来统一审查标准。
UI 构建:表单、无障碍与常见交互模式
日常 UI 工作最能体现框架适配度:表单处理、可访问组件以及模态、菜单、过渡等常见交互模式。
无障碍:语义、焦点与 UI 库
React 19 与 Vue 3 都能交付可访问的 UI,但通常依赖约定和库,而非框架本身。
React 的可访问性实践常围绕选择优秀的 headless 组件库(例如 Radix UI)并在语义与键盘处理上自律。因为 React 本质上是“纯 JavaScript”,在组合组件时更容易无意丢失语义 HTML。
Vue 的模板语法能鼓励更清晰的标记结构,帮助团队保持语义可见性。对话框、弹出菜单和菜单的焦点管理在两个生态通常都由库或仔细的自定义代码提供。
表单与校验
React 应用常用受控输入配合 React Hook Form 或 Formik,并配合 Zod、Yup 等模式校验。React 19 在 Next.js 等框架中朝向的 server-first/async actions 能减少部分客户端表单布线,但大多数生产表单仍依赖成熟的客户端库。
Vue 提供两条便捷路径:轻量的 v-model 绑定适合简单表单,复杂校验可选用 VeeValidate。Composition API 也便于封装可复用字段逻辑。
动画与过渡
Vue 内置了 \u003cTransition\u003e 组件和过渡类,使进出场动画很容易实现。
React 更常借助外部库(Framer Motion、React Spring)来做组件级动画与布局过渡。优势是高度灵活;代价是需要选型与标准化。
国际化与路由基础
路由和 i18n 通常由元框架层提供:
- React:Next.js 路由;i18n 可选 next-intl、react-intl 或 i18next
- Vue:Vue Router;i18n 可选 vue-i18n
若需本地化路由、RTL 支持和无障碍导航模式,尽早选定库并在设计系统中记录“最佳实践”示例。
为项目选择合适框架
在 React 19 与 Vue 3 之间做选择,关键是哪个能为你们团队与产品“降低风险”。
何时通常选择 React 19
React 在长期灵活性与广泛生态方面更占优势:
- 团队习惯“以 JavaScript 为中心”的组件编写,偏好 JSX
- 需要深度的第三方库支持(设计系统、图表、编辑器、企业集成)并希望有更多可选项
- 预期跨多个应用存在复杂的 UI 组合模式(自定义 hooks、共享组件原语)
- 招聘与入职重要:市场上 React 人才普遍更多
何时通常选择 Vue 3
当你希望从想法快速达到 UI,且希望有更规范化路径时,Vue 往往更合适:
- 偏好模板驱动的组件以便可读性与清晰的 HTML 结构
- 想要开箱即用的约定(尤其是使用 Nuxt 时)
- 小团队快速移动,不想花太多时间在工具选择上
复制/粘贴决策清单
- 团队熟悉度:React ___ / Vue ___
- 现有代码库:React ___ / Vue ___
- SSR 需求 + 框架选择(Next/Nuxt):React ___ / Vue ___
- UI 复杂度(表单、表格、权限):React ___ / Vue ___
- 不可变更的依赖:React ___ / Vue ___
- 招聘时间与本地人才池:React ___ / Vue ___
示例场景
一个 营销站点 或 内容型应用 通常偏向 Vue + Nuxt(模板和 SSR 工作流);而一个有大量交互状态与共享 UI 原语的 仪表盘 或 SaaS 应用 往往倾向 React + Next,因为生态更广。最佳答案是能让你在一年后仍可靠交付和维护的那一个。
迁移与升级路径
升级 UI 框架不只是“语法变更”,更在于减少摩擦:保持行为稳定、团队高效并避免长时间冻结。
React 内部迁移(旧 React 到 19):需审查的点
大多数 React 应用可逐步迁移,但 React 19 是审计历史模式的好时机。
先检查第三方依赖(UI 组件库、表单库、路由、数据获取)是否支持目标 React 版本。
然后检查组件代码是否存在:
- 长期保留的旧模式(过时的 context 用法、自行实现的订阅逻辑、手写的异步模式)
- 你以前忽略的 Strict Mode 警告(通常指向真实的边缘情况)
- 如果使用 SSR,确认对服务端渲染的假设——升级可能会暴露之前隐藏的 hydration 不匹配问题
还要确认构建链(Vite/Webpack、Babel/TypeScript)和测试配置与新版本兼容。
Vue 内部迁移(Vue 2 到 Vue 3):常见升级点
Vue 2 → Vue 3 的跳跃更具结构性,建议有计划地迁移。主要关注点包括:
- 组件编写:把 Options API 密集的代码逐步迁移到 Composition API(在能提升可维护性的情况下)
- 全局 API 与插件:应用级配置与插件注册方式的差异
- UI 库与指令:许多 Vue 2 的 UI 套件需要替换或大幅升级
如果有较大的 Vue 2 代码库,按模块逐步升级通常比一次性重写更安全。
在框架间移植:最难的部分
从 React 换到 Vue(或反向)通常不是简单的组件复制粘贴。最难的是:
- 路由约定与嵌套路由布局
- 状态管理模式(尤其是异步数据与缓存策略)
- 表单处理与校验模式
- 组件库与设计系统(token、主题、无障碍期望)
降低风险的计划
采取可测量、可回退的步骤:
- 增量采纳:逐条路由或功能迁移
- 并行运行:在 feature flag 后保留旧实现与新实现并行
- 测试:投资高价值的端到端测试和若干快照/视觉检查以捕捉 UI 偏差
一个好的迁移计划应确保每个里程碑都有可工作的软件,而不是一次性切换。
总结与下一步
读到这里,说明你已经做了最难的一步:把权衡显式化。React 19 与 Vue 3 都能交付优秀产品;“正确”选择通常取决于你的约束(团队技能、交付时间、SEO 需求和长期维护)多于功能清单。
关键要点(记住这些)
- React 19 更适合重视广泛生态和灵活模式的团队,尤其在你已投资 React 工具链时。
- Vue 3 在希望有更一体化的体验与清晰的编写模型时更突出,同时对混合技能的团队更友好。
- 性能很少由框架单独决定。 数据加载策略、组件边界和 SSR/hydration 决策往往比微基准更重要。
- SSR + hydration 是产品级决策。 若 SEO 与首屏 UX 关键,需把 SSR 栈与缓存策略与 UI 层一起评估。
- 状态管理应匹配数据形态。 服务端状态(API 数据)与客户端状态(UI 状态)需求不同;选能方便分离的工具。
- 生态成熟度影响招聘与开发速度。 React 在广度上通常占优;Vue 在一致性与集成易用性上常有优势。
- 迁移风险是真实成本。 升级现有应用时,平滑路径和最少重写压力可能比“理想技术偏好”更值得考虑。
下一步:如何有把握地决策
做一个小型、限时的 spike(1–3 天),在两套栈里实现一个关键流程(列表 + 详情页、表单校验、错误处理和加载态)。保持范围窄且逼近真实场景。
如果想加速这个 spike,可以考虑使用 Koder.ai 做原型化——尤其适用于 React 基线。Koder.ai 是一个 vibe-coding 平台,你可以在聊天中描述流程,生成可运行的 Web 应用并导出源码以便团队审查架构决策。它的 Planning Mode 与快照/回滚功能在快速迭代并希望变更可回退时也很有用。
衡量真正影响结果的指标:
- 包体积与加载时间: 对比生产构建和首路由性能。
- 受压下的 UX: 慢网、空状态、错误态、长列表与重新验证情况。
- 开发体验: 新人多快能在不破坏约定的情况下添加新功能?
- SSR/hydration 行为: 验证 SEO 相关路由并确认数据获取与缓存方式。
如果需要帮助构建评估标准或对齐相关方,建议分享一份简短的内部文档并链接到辅助资源比如 /docs 或 /blog。若需比较实施成本,简单的定价讨论(例如 /pricing)也能为期望值提供锚点。
简易选择模板(可复制粘贴)
用于让讨论更有依据的轻量模板:
- 项目背景:(greenfield vs 现有应用、时间线、团队规模)
- 优先级(排序):(SEO、上市速度、招聘、可维护性、UI 复杂度)
- 不可协商项:(必须 SSR、无障碍门槛、支持的浏览器/设备)
- 风险因素:(迁移工作量、依赖膨胀、培训需求)
- Spike 结果:(包体大小、核心 Web 指标、实现同一功能的开发时间)
- 决策:(选择的框架 + 原因)
- 后续:(工具标准、状态/数据策略、组件约定)
用这种方式记录决策,可以在日后回顾时更有依据,也能减少“框架偏好”盖过证据的情况。
常见问题
新应用该选择 React 19 还是 Vue 3?
请选择适合团队、现有代码、SSR 需求和库要求的框架。React 19 通常提供更多第三方选择,而 Vue 3 对偏好模板的团队来说往往更有条理。
Vue 3 比 React 19 更容易学习吗?
React 使用 JSX,因此标记和 JavaScript 会一起写在组件中。Vue 通常使用单文件组件,将模板、脚本和样式分成不同部分,许多以 HTML 为主的开发者会觉得这样更容易浏览。
Vue 3 比 React 19 更快吗?
默认情况下没有哪个框架更快。包体积、数据加载方式、组件结构和第三方包通常比框架本身更影响用户感受到的速度。
React 19 和 Vue 3 支持 SEO 和服务端渲染吗?
当搜索可见性和首屏速度很重要时,可为 React 使用 Next.js,或为 Vue 使用 Nuxt。这些框架会在服务器上渲染 HTML,并处理页面加载后所需的客户端工作。
React 和 Vue 的状态管理有什么不同?
React 常用本地状态、Context,以及 Redux Toolkit、Zustand 或 TanStack Query 等工具。Vue 使用 refs、响应式状态、组合式函数,并常用 Pinia 管理共享的客户端状态。
什么时候该加入全局状态库或数据获取库?
将 API 数据与仅供 UI 使用的状态分开。当你需要在多个页面中实现缓存、重试、分页、后台刷新或乐观更新时,再加入服务端状态工具。
团队为什么选择 React 19?
React 拥有更丰富的组件库、集成方案和开发者资源。当你需要小众编辑器、图表或成熟的设计系统包时,这种广度很有帮助。
团队为什么选择 Vue 3?
Vue 很适合偏好类 HTML 模板、可预测的组件文件,并希望通过 Nuxt 等工具遵循 Vue 优先约定的团队。它的组合式 API 也能将相关的功能逻辑集中在一起。
React 或 Vue 的 SSR 应用为什么会出现 hydration 错误?
首次渲染时避免使用仅限浏览器的值,包括随机 ID、当前时间戳,以及直接读取 window。让服务端和客户端的输出保持一致,然后在组件挂载后再运行浏览器专用代码。
团队如何在决定前比较 React 和 Vue?
先构建一个接近生产环境的小型流程,例如列表、详情页、表单校验、加载状态和错误状态。比较交付时间、打包产物、无障碍性、SSR 行为,以及其他开发者扩展它的难易程度。