什么是 React Server Components(RSC)?服务端组件和客户端组件如何区分?

RSC 是在服务端渲染、不发送到客户端的组件,能直接访问数据库/文件系统,且不增加客户端 JS 体积。

// 服务端组件(默认)
export default async function Page() {
  const data = await db.query()   // 直接查库,不暴露给前端
  return <ClientPart initial={data} />
}
// client.tsx
'use client'
export default function ClientPart({ initial }) {
  const [n, setN] = useState(initial)
  return <button onClick={() => setN(n + 1)}>{n}</button>
}

原则:能服务端的尽量服务端(减小包体);需要交互/浏览器 API 才标 'use client'。

同分类其他题目