客户端水合(hydration)

1 分钟
28 阅读
客户端水合(hydration)

服务端数据获取:

在服务端组件中使用异步函数获取数据,利用 Next.js 14 的服务端渲染能力
使用 revalidate 配置数据缓存时间,减少不必要的 API 调用
组件拆分:
将页面拆分为多个小型、可复用的组件
只有需要交互的组件(如订阅表单)被标记为客户端组件,其他保持服务端渲染
类型定义:
创建统一的类型定义文件,提高代码可维护性
Suspense 和加载状态:
使用 React Suspense 优化加载体验
为各部分提供骨架屏加载状态
这种架构的优点:
服务端渲染的内容可以更快地展示给用户
首次加载的 JavaScript 包体积更小
只有交互部分需要客户端水合(hydration)
SEO 更友好,因为搜索引擎可以看到完整渲染的内容

客户端渲染

  • 设置 dynamic = 'force-dynamic' 启用动态渲染
  • 设置 revalidate = 600 实现10分钟的缓存
  • 使用 Promise.all 并行获取数据,减少等待时间
  • 使用 next: { revalidate } 确保数据缓存

评论

评论

发表评论