loading加载
loading.js 可以帮助你使用React Suspense创建一个组件, 当你在加载路由内容时,它会显示该加载状态组件,渲染完成后,新的内容将会自动替换。
传统ssr渲染流程
传统的ssr渲染流程,当用户请求一个页面时,服务器会根据路由匹配到对应的组件,然后渲染该组件,最后将渲染后的html返回给用户。
如果组件中存在异步数据,那么服务端会等待异步数据加载完成之后再渲染,这样可能会导致页面白屏时间较长的问题。
而next.js提供了一种新的渲染方式,即流式渲染。
流式渲染
所谓的流式渲染,就是把一个组件拆分成多个小块,然后分块渲染。
这样的话,当客户端请求页面时会优先展示静态内容,等到服务端异步数据加载完成并渲染成功后,客户端再继续渲染剩余的内容。
但是,需要注意一点,流式渲染并不会提高整个页面的加载速度,只是将白屏时间缩短了。
Suspense
Next.js提供的Suspense组件和传统的spa中使用的Suspense组件是不同的。
- 传统spa中的Suspense组件