RSC(React Server Components)
名词 · React
React 的新范式,某些组件专门在服务端执行,直接访问数据库和 API 而不将其 JavaScript 代码发送到浏览器——大幅减小客户端 bundle 体积。
原生集成在 Next.js 中的革命性架构,将组件分为两类:用于静态渲染和数据访问的 Server Components,以及用于交互的 Client Components——自动优化发送到浏览器的内容。
React 生态系统的重大演进,消除了性能与功能之间的历史权衡,允许服务端组件预先解析数据,然后仅将结果 HTML 传输给客户端。
React Server Components(RSC)是一种专门在服务端执行的新型 React 组件。它们可以直接访问数据库、文件系统和 API,而不会将 JavaScript 代码发送到用户的浏览器。渲染结果以 HTML 和序列化 payload 的形式传输给客户端。我们的团队通过 Next.js 原生使用 RSC,构建只将交互所需的 JavaScript 发送到浏览器的应用。
传统 React 组件(Client Components)在浏览器中被下载、解析和执行,将所有代码、依赖和逻辑包含在 JavaScript bundle 中。而 RSC 仅在服务端执行:它们的依赖(解析库、数据库访问、格式化库)永远不会发送到客户端。我们的团队利用这一区别将 JavaScript bundle 体积减少高达 70%,显著加速页面加载。
RSC 通过消除浏览器中多余的 JavaScript 来革新 Web 性能。传统上,即使是显示静态文本的组件也会将其 JavaScript 代码发送到客户端。使用 RSC,只传输生成的 HTML,服务端依赖(如 Markdown 库或 ORM)永远不会增加客户端 bundle 的负担。我们的团队在迁移到 RSC 架构的项目中观察到 Time to Interactive 和 Largest Contentful Paint 的显著改善。
RSC 通过自动从客户端 JavaScript 中排除所有服务端组件及其依赖的代码来减小 bundle 体积。RSC 中使用的日期格式化库、Markdown 解析器或数据库客户端永远不会出现在浏览器下载的 bundle 中。我们的团队通过最大化 Server Components 的比例来优化项目结构,仅在严格需要用户交互时才切换为 Client Components。
RSC 对 SEO 有非常积极的影响,因为内容直接在服务端渲染为 HTML,搜索引擎爬虫无需执行 JavaScript 即可立即读取。此外,页面更轻量、加载更快,改善了作为 Google 排名因素的 Core Web Vitals。我们的团队利用 RSC 使内容页面达到接近 100 分的 Lighthouse 评分,最大化您的自然搜索可见度。
可以,这正是 React 和 Next.js 推荐的模式。Server Components 处理静态渲染、数据访问和布局,而 Client Components 负责交互性——表单、动画、状态管理。Server Component 可以导入并渲染 Client Component,创建最优的分层架构。我们的团队设计的组件树中,每个层级都使用最高效的组件类型来履行其职责。
RSC 允许直接在组件代码中查询数据库和 API,无需创建中间 API 路由或客户端数据获取层。服务端组件异步解析数据,然后将渲染结果以 HTML 形式传输给浏览器。我们的团队利用这种简便性降低项目的架构复杂度,消除多层样板代码,同时保持清晰的职责分离。
RSC 显著增强了安全性,因为 API 密钥、数据库访问令牌和敏感业务逻辑完全留在服务端,永远不会暴露在客户端 JavaScript 中。恶意用户无法检查 bundle 来发现私有端点或密钥。我们的团队将 RSC 视为重要的安全杠杆,允许在组件中处理敏感数据而不存在客户端泄露风险。
采用 Next.js 的 RSC 架构意味着对项目的性能、安全性和长期可维护性进行投资。页面加载更快,bundle 更轻量,数据保护更好,代码更易维护。我们的团队陪伴企业完成这一战略转型,设计定制的 RSC 架构,将您的 Web 应用转化为市场上持久的竞争优势。