React 词条目录
前端Wiki/词条/服务端组件 RSC

服务端组件 RSC

定义在服务端渲染、零客户端体积的组件形态,与客户端组件协作分工

服务端组件只在服务器上执行:可以直接读数据库、调内部接口、引入大体积依赖,而这些代码永远不会被打包进客户端。RSC 也不是传统的 SSR 字符串——它向浏览器发送的是可流式解析的组件描述,客户端组件可以直接作为它的子节点嵌入,两者在树上混合渲染。

分工原则是默认用服务端组件,需要交互再加 use 客户端指令。Next.js 的 App Router 是目前最完整的落地:页面级默认 RSC,交互组件标 use client。限制同样明显:服务端组件不能用 state、不能响应用户事件,且整个体系依赖框架与打包器的深度改造,独立用很难。

JavaScript
// page.server.jsx —— 服务端组件:直接取数据,零客户端体积
import Db from './db';
import Counter from './Counter';           // 客户端组件

export default async function Page() {
  const list = await Db.query('SELECT id, title FROM posts LIMIT 10');
  return (
    <main>
      <h1>文章列表</h1>
      <ul>{list.map((p) => <li key={p.id}>{p.title}</li>)}</ul>
      <Counter label="点赞" />              {/* 客户端组件可嵌入 */}
    </main>
  );
}
⚠ 常见误区
🔗 相关词条打包与部署虚拟 DOM
← 返回来源章节虚拟 DOM