什么是流式 SSR(Streaming SSR)?和传统的整页 SSR 有什么区别?
传统 SSR 等整个页面渲染完才把 HTML 一次性发给浏览器,慢组件会拖垮整页 TTFB。
流式 SSR 利用 HTTP 流式响应,先发 shell(骨架/导航),再按组件就绪顺序分块发送内容(借助 Suspense / 异步组件):
// React 18:流式 + Suspense
renderToPipeableStream(<App />, {
bootstrapScripts: ['/main.js']
})
// 快的组件先到,慢的(如 <Suspense> 包裹的评论区)稍后到达并替换占位好处:
- 首屏可见时间更短(先看到布局)
- 一个慢的数据请求不会阻塞整页
- 配合
<Suspense fallback>给用户即时反馈
注意:流式要求服务端/网关支持分块传输(chunked encoding)。