决定在哪引入代码分割需要一些技巧。需要确保选择的位置能够均匀地分割代码包而不会影响用户体验。
一个不错的选择是路由。大多数网络用户习惯于页面之间能有个加载切换过程。可以选择重新渲染整个页面,这样就不必在渲染的同时再和页面上的其他元素进行交互。
下面的例子演示了使用 React.lazy 和 React Router 这类的第三方库,来配置基于路由的代码分割。
import { BrowserRouter as Router, Route, Switch } from 'react-router-dom';
import React, { Suspense, lazy } from 'react';
const Home = lazy(() => import('./routes/Home'));
const About = lazy(() => import('./routes/About'));
const App = () => (
<Router>
<Suspense fallback={<div>Loading...</div>}>
<Switch>
<Route exact path="/" component={Home}/>
<Route path="/about" component={About}/>
</Switch>
</Suspense>
</Router>
);