SuperAPI AI 工具集

nextjs-server-components

编程与开发

查看项目

更新于 10-26 16:21

技能介绍

用途

本技能用于在 Next.js 16 与 React 19 环境下处理服务端组件与客户端组件的划分与协作问题。适用情形包括:决定某个组件应为服务端还是客户端组件、在组件内直接取数而不经 API 路由、实现流式与渐进式渲染、跨服务端/客户端边界传递数据、使用可直接访问数据库的异步组件。

主要能力

  • 组件边界判定:服务端组件为默认渲染模型,无需指令;仅在需要 Hooks、事件或浏览器 API 时使用 'use client'。
  • 直接取数:在组件中查询数据库、读取文件,省去 API 层。
  • 流式渲染:用 Suspense 边界实现渐进式加载。
  • 安全防护:使用 server-only 包防止服务端代码被误引入客户端而泄漏密钥。
  • 并行取数:对相互独立的数据使用 Promise.all()。
  • 缓存:用 use cache 缓存开销较大的服务端计算。
  • 组合模式:将服务端组件作为 children 传入客户端组件,把客户端边界尽量下推。

关键规则

  • 服务端组件是默认,无需指令;'use client' 仅在必要时添加。
  • 绝不把 server-only 引入客户端,应使用 server-only 包。
  • 跨边界的 props 必须可序列化,不能是函数、类或 Date。
  • 异步组件仅限服务端,客户端组件不能是异步的。
  • 就近取数,在消费数据的地方获取数据。

使用方式

资料规定了一套强制性的智能体工作流:任何实现之前,并行启动 3 个智能体,每个单独一次带名称的 Agent 调用,分别用于分析现有组件边界、通过 Context7/Exa 核验最新 RSC 文档、查询 Next.js 16 RSC 模式文档;实现完成后运行校验智能体进行验证。参考资料分为 rsc-patterns.md 与 streaming.md,分别对应服务端/客户端模式、取数以及流式与加载状态。

适用范围与限制

本技能专注于服务端/客户端组件边界本身,不覆盖 Next.js 路由与缓存 API 的通用内容,也不覆盖客户端取数库。资料未提供安装命令、价格、平台支持或效果数据,暂未提供相关信息。