SuperAPI AI 工具集

server-components

通用与其它

查看项目

更新于 10-15 20:33

技能介绍

用途:讲解 Next.js App Router 中 React Server Components(RSC)与 Client Components 的区别与用法,帮助判断何时使用服务端或客户端组件。

主要能力:说明 Server Components 默认在服务端运行,可直接访问数据库与文件系统、保留敏感数据、减小客户端包体积并自动代码分割;Client Components 通过 'use client' 指令启用,用于 useState、useEffect、useReducer、事件处理、浏览器 API 及带状态的自定义 Hook。

使用方式:以组件树中的“客户端边界”为心智模型——Server Component 可导入 Client Component,Client Component 不能导入 Server Component,但可将 Server Component 作为 children 传入。资料给出三种组合模式:服务端取数后传给客户端组件、用 children 传递服务端内容、用多个插槽构建复杂布局。数据获取方面,Server Component 可为 async,支持 Promise.all 并行取数,并可用 Suspense 流式渲染慢组件。

适用场景:需要取数、访问后端资源、隐藏敏感信息、减少客户端 JavaScript 或无交互的组件用 Server Component;需要状态、副作用、事件监听、浏览器 API 的组件用 Client Component。

限制与注意:不要无必要地添加 'use client',否则增大包体积;不要在 Client Component 中导入 Server Component;跨边界传递的数据需可序列化,不能传函数、类或日期。资料还提到 references/server-vs-client.md、references/composition-patterns.md 与 examples/data-fetching-patterns.md 等参考文件。