我使用 React Router 和 React Loadable 根据路由对我的应用进行代码拆分:
在 App.js 中:
<Router>
<Switch>
<Route exact path="/page1" component={Component1Loader} />
<Route exact path="/page2" component={Component2Loader} />
在 Component1Loader 中:
import Loadable from 'react-loadable';
const LoadableComponent = Loadable({
loader: () => import('./ActualComponent1'),
loading: Loading,
});
export default class Component1Loader extends React.Component {
render() {
return <LoadableComponent {...this.props} />;
}
}
在 Component2Loader 中:
import Loadable from 'react-loadable';
const LoadableComponent = Loadable({
loader: () => import('./ActualComponent2'),
loading: Loading,
});
export default class Component2Loader extends React.Component {
render() {
return <LoadableComponent {...this.props} />;
}
}
如何根据路由预加载组件?例如,大多数用户会从首页导航到 /page1,所以我想预加载它。
在 /page1 上时,我想预取 /page2。