React Server Components(RSC)是React推出的新型组件类型,核心是在服务器环境中提前渲染,无需发送到客户端执行,能优化性能、减少客户端代码体积。 一、核心定义与运行环境1. 本质React Server Components是一种在服务器端独立环境中渲染的组件,与客户端应用或传统SSR服务器分离,渲染时机早于代码打包。 2. 运行方式• 可在构建时(如CI服务器)一次性渲染静态内容;• 可在请求时(如Web服务器)动态渲染,支持实时数据交互。 二、核心优势与场景1. 减少客户端代码体积服务器组件中引入的库(如`marked`、`sanitize-html`)不会被打包到客户端bundle,仅将渲染后的HTML发送给浏览器,避免额外的网络请求和代码解析。 2. 优化数据加载体验• 静态内容:构建时直接读取文件系统或CMS数据,页面首次加载即可显示内容,无需客户端二次请求;• 动态内容:请求时直接访问数据库等数据层,避免客户端Effect导致的“请求瀑布流”(如嵌套组件依次请求数据)。 3. 支持异步渲染可使用`async/await`在组件渲染过程中等待数据,React会挂起渲染直到Promise解析,支持Suspense流式传输。 三、与客户端组件的协作1. 交互性补充服务器组件无法使用`useState`等客户端API,需通过`"use client"`指令引入客户端组件实现交互(如展开/折叠功能)。 2. 数据传递逻辑服务器组件可将渲染后的HTML或数据作为props传递给客户端组件,捆绑器会自动分离两者的代码包。 四、关键注意事项1. React 19稳定性React 19中的RSC已稳定,但底层捆绑器/框架API不遵循语义化版本,建议固定React版本或使用Canary版本。 2. 指令误区服务器组件本身无指令,`"use server"`用于标记服务器函数,而非组件。