stream、suspense、loading.tsx

Suspense 服务端只能在获取所有数据后渲染 HTML,React 只能在下载了所有组件代码后才能进行水合。 为了解决这个问题,就有了 Suspense 组件,它允许你推迟渲染某些内容,直到满足某些条件(例如数据加载完毕) stream Suspense 背后的实现技术就叫做Streaming。即将页面的HTML 拆分多个chunks,逐步从服务端发送给客户端。 好处:提前发送到客户端的组件,就可以提前进行水合,那么用户就可以和提前水合完毕的组件进行交互。 stream 的传输协议 Transfer-Encoding 的值为 chunked ,表示允许 HTTP由网页服务器发送给客户端应用( 通常是网页浏览器)的数据可以分成多个部分 RSC react 服务端组件传输协议 RSC协议直接基于HTTP协议实现,其Content-Type为 text/x-component。 nextjs 实现 streaming 的方式 NextJs中有两种实现Streaming的方式: 针对组件级别:使用Suspense组件(就上面的案例)。 针对页面级别:使用loading.tsx。

来源整理自:vue3js.cn 面试官系列