理解 Next.js 14:Server Actions 与 Partial Prerendering

原标题Next.js 14 in Context: Server Actions and Partial Prerendering

Theo 解释 2023 年版本及其渲染权衡。

TBTheo Browne讲者 · Ping Labs
频道
Theo - t3․gg
发布
2023年10月30日
视频
17:11
阅读
4 分钟
原文
英语
在 YouTube 打开
往下滚动阅读时,视频会缩到右下角继续播放。字幕跟随阅读语言。
阅读语言共 2 种语言可读
由 AI 从英语原文翻译。打开“对照原文”可以逐段核对。
摘要

30 秒看懂

Theo 讨论 Next.js 14 中 Server Actions 的稳定化、Turbopack 的进展和 Partial Prerendering 预览。他在 2023 年的讲解强调感知性能;官方发布说明也列出了破坏性变更。

  1. 1版本背景2023 年版本侧重稳定性,但仍包含官方列出的破坏性变更。
  2. 2四个主题发布内容涵盖编译器、action、预览功能和学习材料。
  3. 3TurbopackTheo 的兼容性体验只适用于他的环境。
  4. 4Server ActionsAction 在服务端执行,仍需要安全检查。
  5. 5Partial Prerendering拟议功能结合静态外壳与动态内容。
  6. 6流式传输Suspense 可以在较慢内容准备好之前发送占位内容。
  7. 7缓存边界共享缓存不能泄露个性化数据。

要点建议

  1. 2023 年版本侧重稳定性,但仍包含官方列出的破坏性变更。
  2. 发布内容涵盖编译器、action、预览功能和学习材料。
  3. Theo 的兼容性体验只适用于他的环境。
  4. Action 在服务端执行,仍需要安全检查。
  5. 拟议功能结合静态外壳与动态内容。
  6. Suspense 可以在较慢内容准备好之前发送占位内容。
  7. 共享缓存不能泄露个性化数据。
全文

按章节阅读整理后的全文

只看原始文稿
01

2023 年版本

稳定性、兼容性与官方变更。

Theo 在 2023 年 10 月 Next.js 14 发布后不久讨论该版本。他披露 Vercel 赞助其频道,但没有赞助这支视频。这是对当时版本的历史解读,并非当前 Next.js 行为指南。

他认为该版本主要稳定和改进现有工作,而不是要求每个应用采用新的编程模型。不过,[官方发布说明](https://nextjs.org/blog/next-14)仍列出破坏性变更,包括更高的最低 Node.js 版本以及移除旧的 next export 命令。

主要话题包括 Turbopack 的进展、稳定版 Server Actions、Partial Prerendering 预览以及新的学习课程。课程属于文档与教育资源,并非运行时变更。

Theo 说 Turbopack 在实验中感觉更快,但由于依赖兼容问题,当时还不能用于自己的实际项目。这是对其 2023 年环境的报告,并非当前兼容性评估。

02

Server Actions

服务端执行、表单与安全。

他解释把服务端操作与应用代码放在一起的吸引力,并将其与单独的 API 路由比较。Server Actions 提供执行服务端数据修改的方式,并与表单及框架缓存行为集成。

重要边界是:即使从用户界面调用,action 仍在服务端执行。客户端组件可以调用正确定义的 server action;开发者仍需要身份验证、授权和输入验证。

Theo 回应对 SQL 模板语法的担忧,指出标签模板在实现正确参数化时可以安全处理值。标签本身并不保证安全;安全性取决于数据库库及正确使用。

03

渲染权衡

客户端渲染、SSR 与流式传输。

他通过比较初始响应与稍后到达的个性化内容,介绍 Partial Prerendering。目标是快速提供静态外壳,并在动态部分准备好后流式传输。

在典型的客户端渲染单页应用中,初始 HTML 外壳可能很快到达,但页面完整之前仍可能需要加载 JavaScript 并获取数据。嵌套请求可能产生多个加载状态。

他将其与传统服务端渲染作比较:服务器可能先等待生成初始响应,随后浏览器才收到有用 HTML。实际时间取决于缓存、网络、服务端工作和部署方式。

他提到增量静态再生可以复用已生成页面。缓存响应和新生成响应具有不同延迟特征,包括缓存未命中或重新验证时可能发生的工作。

使用 React Suspense 和流式传输时,服务器可以先发送占位内容,随后交付较慢的组件。Theo 指出,服务器仍需开始处理请求,才能发送初始动态响应。

他区分用户看到任何内容之前的时间与查看加载状态的时间。他强调的是感知性能:即使最终数据稍后到达,有意义的早期外壳也能让应用感觉更快。

04

Partial Prerendering

缓存外壳与动态部分。

所提出的 Partial Prerendering 模式缓存静态外壳,并在 Suspense 边界后流式传输请求特定部分。需要谨慎避免把个性化数据放进共享缓存输出。

Theo 强调,这不会消除服务端计算,也不一定缩短所有动态内容准备完成所需的时间。它可以改善获得有信息量的初始响应所需的时间。

他对该方法表示期待,也指出实现细节当时仍在完善。2023 年官方发布说明把 Partial Prerendering 描述为开发中的预览,因此不能将视频中它已经成为默认行为的说法当作该版本状态。

同频道的其他文章

4 张幻灯片49:29EN → 简体中文
Theo - t3․gg· 2026年10月30日Theo:智能体 Harness、界面与不断变化的抽象层次Theo · T3 CodeT3 Code 创建者解释他对 harness 的理解,以及为什么他预计用户会越来越少地注意它们的差异。编程智能体智能体工程Software engineering+2
5 张幻灯片41:49EN → 简体中文
Theo - t3․gg· 2026年10月29日Theo 演示如何用 T3 Code 协调编码智能体Theo · t3.ggT3 Code 的创建者介绍多个智能体提供方、远程机器、会话组织方式,以及开源编码界面的取舍。Agent orchestration开发流程与测试智能体工程+2
5 张幻灯片38:47EN → 简体中文
Theo - t3․gg· 2026年10月28日Theo 的长时间 Agent 实验:验证、算力与成本Theo Browne · Ping Labs滑板游戏和两个编译器项目展示了反复检查与弹性算力如何支撑 agent 工作,也揭示了循环可能带来的高昂成本。编程智能体智能体工程AI cost & performance+2
5 张幻灯片36:07EN → 简体中文
Theo - t3․gg· 2026年10月27日Theo 谈 Token 成本、编程智能体与 AI 能力的价格Theo Browne · Ping Labs一则关于 Lauren 的 AI 支出估算广泛传播,引出了对缓存计价、基准测试和编程智能体工作方式的讨论。AI cost & performance编程智能体Inference+1
5 张幻灯片30:37EN → 简体中文
Theo - t3․gg· 2026年10月26日Theo 的三个技能:用编程智能体审查和交付代码Theo Browne · Ping Labssol-loop、full-send 和 full-stop 如何定义审查、验证以及不同程度的合并权限。Agent skills编程智能体Code review & verification+2
2 张幻灯片0:43EN → 简体中文
Theo - t3․gg· 2026年10月23日Theo 区分安全漏洞与实际攻击Theo Browne · Ping Labs一段简短讲解:软件漏洞披露和攻击事件为何属于不同类型的安全新闻。CybersecuritySoftware engineering