跳转到主要内容
指南

服务器组件 (Server Components)

专在服务器上执行的 UI 组件,向客户端发送预渲染的标记,而不会增加 JavaScript 包的大小。

发表于

定义

专在服务器上执行的 UI 组件,向客户端发送预渲染的标记,而不会增加 JavaScript 包的大小。

服务器组件(最著名的是 React Server Components)是一种范式,其中特定的 UI 组件保证只在服务器上执行。它们不会向浏览器发送任何自己的 JavaScript。它们可以直接访问数据库和后端 API,并将序列化的数据或 HTML 传递给标准的客户端组件。

为什么重要

从历史上看,如果一个组件需要一个大型库(比如 markdown 解析器或日期格式化程序),那么整个库都必须被发送到用户的浏览器。服务器组件允许你在服务器上运行那个沉重的库,只通过网络发送生成的 HTML 字符串。这极大地减少了客户端包的大小。

服务器组件 vs. 服务器端渲染 (SSR)

  • SSR: 服务器渲染组件的初始 HTML,但组件的代码仍然会发送到浏览器,以便它可以被水合(hydrate)并管理自己的状态。
  • 服务器组件: 服务器将组件渲染为一种特殊的序列化格式。组件的代码永远不会发送到浏览器。该组件不能使用客户端状态(如 useState)或浏览器 API(如 window)。

相关概念