指南
服务器组件 (Server Components)
专在服务器上执行的 UI 组件,向客户端发送预渲染的标记,而不会增加 JavaScript 包的大小。
发表于
目录
定义
专在服务器上执行的 UI 组件,向客户端发送预渲染的标记,而不会增加 JavaScript 包的大小。
服务器组件(最著名的是 React Server Components)是一种范式,其中特定的 UI 组件保证只在服务器上执行。它们不会向浏览器发送任何自己的 JavaScript。它们可以直接访问数据库和后端 API,并将序列化的数据或 HTML 传递给标准的客户端组件。
为什么重要
从历史上看,如果一个组件需要一个大型库(比如 markdown 解析器或日期格式化程序),那么整个库都必须被发送到用户的浏览器。服务器组件允许你在服务器上运行那个沉重的库,只通过网络发送生成的 HTML 字符串。这极大地减少了客户端包的大小。
服务器组件 vs. 服务器端渲染 (SSR)
- SSR: 服务器渲染组件的初始 HTML,但组件的代码仍然会发送到浏览器,以便它可以被水合(hydrate)并管理自己的状态。
- 服务器组件: 服务器将组件渲染为一种特殊的序列化格式。组件的代码永远不会发送到浏览器。该组件不能使用客户端状态(如
useState)或浏览器 API(如window)。
相关概念
- 阅读完整指南:作为架构的 Web 性能
- 另请参阅:渲染策略、水合