Next.js返回首页
Next.js logo

Blog/RSC

React Server Components 实战笔记

默认在服务端渲染组件、减少客户端 JavaScript,并在需要交互时按需引入 Client Components。

Next.js 实践笔记7 分钟阅读

在 App Router 中,组件默认是 Server Component。它们在服务端执行,可以直接读文件、查 Mock 数据或访问数据库,而不会把这些逻辑打包进浏览器。

对博客详情页来说,按 slug 查找文章、组装标题与正文,完全可以在服务端完成。页面输出的是 HTML,首屏不必等待客户端再去拉一份文章 JSON。

何时使用 Client Component

只有真正需要浏览器能力时才加 "use client":事件处理、useState、useEffect,或依赖 window 的库。常见做法是让页面保持服务端组件,把按钮、搜索框拆成小型客户端子组件。

边界要尽量靠下。把整篇文章页面都标成客户端组件,会把本可以留在服务端的数据获取也推到浏览器,体积和瀑布请求都会变差。

数据流建议

服务端组件负责取数与排版,客户端组件只接收已序列化的 props。Mock 数据可以先放在本地模块,接口稳定后再换成 CMS 或数据库,页面组件几乎不用改。

继续阅读