深入理解 React Server Components
2026年7月3日8 分钟阅读
为什么需要 Server Components
传统的 React 应用把所有组件都打包发送到浏览器执行,随着应用变大,首屏 JS 体积成为性能瓶颈。
React Server Components(RSC)允许一部分组件只在服务端运行,它们:
- 不会把自身代码打包进客户端 bundle;
- 可以直接访问数据库、文件系统等后端资源;
- 渲染结果以特殊格式流式传输到客户端。
一个简单示例
// 这是一个 Server Component,可以直接 await 数据
export default async function Page() {
const posts = await db.post.findMany();
return <PostList posts={posts} />;
}
何时使用客户端组件
需要交互(事件、状态、浏览器 API)时,用 "use client" 声明:
"use client";
import { useState } from "react";
export function Counter() {
const [n, setN] = useState(0);
return <button onClick={() => setN(n + 1)}>{n}</button>;
}
经验法则:默认写 Server Component,只在需要交互时才切到 Client Component。
小结
RSC 不是银弹,但它为「数据获取」与「交互」提供了清晰的边界,能显著减小 bundle 体积。
评论 (2)
- 小小明2026年7月3日
讲得很清楚,终于搞懂 RSC 和 SSR 的区别了!
- AAlice2026年7月3日
默认写 Server Component 这条经验法则很受用。