1. RSC(React Server Components)
特点
React Server Components 是 React 团队提出的一种新概念,旨在改进服务器端组件的渲染和数据获取。
RSC 允许在服务器端渲染组件,并将渲染结果发送到客户端,而无需在客户端重新渲染。
通过 RSC,可以将一些重量级的逻辑放在服务器端执行,减轻客户端的负担。
RSC 和客户端组件可以无缝集成,允许开发者在同一个项目中使用服务器端和客户端组件。
优点
提高性能:部分渲染工作在服务器端完成,减少了客户端的计算负担。
更好的 SEO:服务器端渲染的内容可以被搜索引擎更好地索引。
更好的用户体验:初始页面加载速度更快,减少了白屏时间。
应用场景
需要高性能和快速初始加载的应用。
SEO 要求较高的内容驱动型网站。
复杂的数据获取和处理逻辑适合在服务器端执行。
2. SSR(Server-Side Rendering)
特点
Server-Side Rendering 是一种传统的渲染方式,页面在服务器端生成并发送到客户端。
SSR 在服务器端执行整个 React 组件树的渲染,并将生成的 HTML 发送到客户端。
客户端接收到 HTML 后,再进行事件绑定和后续的交互处理。
优点更好的 SEO:由于页面内容在服务器端生成,搜索引擎可以更好地索引。
较快的初始加载时间:用户在首次访问时可以立即看到完整的页面内容,而不是等待 JavaScript 加载和执行。
缺点
增加服务器负载:所有页面请求都需要服务器端渲染,可能会增加服务器的压力。
开发复杂度:需要处理服务器端和客户端的代码差异,可能会增加开发难度。
应用场景
需要良好 SEO 支持的应用,如博客、新闻网站等。
初始加载性能要求较高的应用。
区别总结

示例代码
RSC 示例// server-component.js
export default function ServerComponent() {
return <div>This is rendered on the server.</div>;
}
// client-component.js
import ServerComponent from './server-component';
function ClientComponent() {
return (
<div>
<h1>Hello from the client!</h1>
<ServerComponent />
</div>
);
}
export default ClientComponent;SSR 示例// server.js
import express from 'express';
import React from 'react';
import ReactDOMServer from 'react-dom/server';
import App from './App';
const server = express();
server.get('*', (req, res) => {
const app = ReactDOMServer.renderToString(<App />);
res.send(`
<!DOCTYPE html>
<html>
<head>
<title>SSR Example</title>
</head>
<body>
<div id="root">${app}</div>
<script src="/client.js"></script>
</body>
</html>
`);
});
server.listen(3000, () => {
console.log('Server is running on port 3000');
});总结来说,RSC 和 SSR 都是在服务器端进行渲染的技术,但它们的实现方式和应用场景有所不同。选择哪种技术取决于具体的应用需求和性能考量。如果你有更多问题或需要更详细的解释,请随时告诉我! 网友回复


