React 服务器组件与服务器端渲染 (SSR) 之间的区别 SSR 完全取决于初始页面加载 React 服务器组件始终在服务器上渲染 React 服务器组件更有可能减少包大小 结论

2025-06-07

React 服务器组件与服务器端渲染 (SSR) 之间的区别

SSR 是关于初始页面加载的

React 服务器组件始终在服务器上渲染

React 服务器组件更有可能减少包大小

结论

2020 年 12 月,React 团队推出了一项名为 React 服务器组件 (React Server Components) 的实验性功能。你可能会好奇,这些“服务器组件”与服务器端渲染 (SSR) 究竟有何不同。


如果您喜欢这篇文章,请给它一个💓、🦄或🔖,并考虑订阅📬我的免费每周开发者新闻通讯


SSR 是关于初始页面加载的

使用 SSR 时,您会将 HTML 发送到客户端,然后加载所有典型的 React JavaScript。JavaScript 加载完成后,应用程序即被视为已完成“hydrated”(水合),并恢复为可正常运行的客户端 React 应用。这意味着,在初始页面加载后,您的应用本质上与使用 SSR 时一样,仍然是原来的 React 应用。在 SSR 中,除了首次页面加载是纯 HTML 之外,所有组件仍然是客户端组件!

TL;DR:SSR 基本上就是让初始加载看起来更像传统的服务器渲染应用程序。

React 服务器组件始终在服务器上渲染

React 服务器组件始终在服务器上渲染。这些组件很可能正在从后端获取数据,因此将这些组件的渲染与正在获取的数据放在一起是合理的。每当这些组件需要重新渲染时,它们都会从服务器重新获取,并合并到现有的客户端 React 组件树中。这样做的好处是,即使我们从服务器重新获取部分视图,客户端状态也会被保留。

React 服务器组件更有可能减少包大小

由于服务器端渲染 (SSR) 应用与初始页面加载有关,因此客户端在浏览应用时很可能会下载所有依赖项(毕竟,在首次页面加载后,它就变成了客户端应用)。但是,如果您依赖了 React 服务器组件,这些依赖项将始终只存在于服务器上,因为这些 React 服务器组件在渲染完成之前不会发送到前端。

结论

虽然 React 服务器组件和 SSR 都涉及一些服务器端的 React 渲染,但它们实际上有很大不同!RSC 是一个非常有趣的开发,我当然期待了解更多关于它们的知识。

文章来源:https://dev.to/nas5w/what-is-the-difference- Between-server-side-rendering-ssr-and-react-server-components-5339
PREV
您的第一个 React GraphQL 前端与 Apollo 客户端:简介、创建新的 React 应用、添加 GraphQL 到 Apollo 客户端、查询 API、更新变量、总结
NEXT
在 React 中使用自定义 useLocalStorage Hook 的本地存储 我们的方法 创建 Hook 测试我们的新 Hook