React.Suspense
是一种虚拟组件(类似于 Fragment,仅用作类型标识)。是组件在从缓存加载数据时暂停渲染的通用方法,解决了当渲染是 I/O 绑定时的问题。
<Suspense>
是一个延迟函数所必须的组件,通常用来包裹住延迟加载组件。多个延迟加载的组件可被包在一个 <Suspense>
组件中。
代码示例:
// This component is loaded dynamicallyconst OtherComponent = React.lazy(() => import('./OtherComponent'));function MyComponent() {return (// Displays <Spinner> until OtherComponent loads<React.Suspense fallback={<div>loading...</div>}><div><OtherComponent /></div></React.Suspense>);}
说明:
fallback
属性,用来在组件的延迟加载过程中显式某些 React 元素<Suspense>
子孙组件还在加载中没返回的 <Lazy>
组件,就返回 fallback
指定的内容<Suspense>
组件可以放在(组件树中)Lazy 组件上方的任意位置,并且下方可以有多个 <Lazy>
组件⚠️ 注意:
<Suspense>
包裹的 <Lazy>
组件会报错