React.lazy() 允許你定義一個動態(tài)加載的組件。這有助于縮減 bundle 的體積,并延遲加載在初次渲染時未用到的組件。
1、 異步加載組件
const Foo = React.lazy(() => import('../componets/Foo));
2、React.lazy不能單獨(dú)使用,需要配合React.suspense,suspence是用來包裹異步組件,添加loading效果等。
<React.Suspense fallback={<div>loading...</div>}>
<Foo/>
</React.Suspense>
3、React.lazy原理
React.lazy使用import來懶加載組件,import在webpack中最終會調(diào)用requireEnsure方法,動態(tài)插入script來請求js文件,類似jsonp的形式。