使用React.lazy和React.Suspense可以实现React代码的动态加载和代码分割,从而提高应用程序的性能。
React.lazy是一个函数,它允许您延迟加载组件,这意味着组件只会在需要时加载。该函数接受一个返回动态导入的组件的函数。例如:
const MyComponent = React.lazy(() => import('./MyComponent'));
上面的代码中,MyComponent是一个动态导入的组件,只有在需要时才会加载。React.lazy需要配合React.Suspense使用。
React.Suspense是一个组件,它可以在等待组件加载时显示一个回退组件。例如:
<React.Suspense fallback={<div>Loading...</div>}>
<MyComponent />
</React.Suspense>
上面的代码中,如果MyComponent尚未加载,则会显示Loading...。fallback属性可以是任何有效的React元素。
要使用React.lazy和React.Suspense实现代码分割,只需将它们结合在一起:
const MyComponent = React.lazy(() => import('./MyComponent'));
function App() {
return (
<div>
<React.Suspense fallback={<div>Loading...</div>}>
<MyComponent />
</React.Suspense>
</div>
);
}
上面的代码中,MyComponent是一个动态导入的组件,只有在需要时才会加载。如果MyComponent尚未加载,则会显示Loading...。