gpt4 book ai didi

react-router - 使用 React Loadable 和 React Router 基于路由预取?

转载 作者:行者123 更新时间:2023-12-01 13:22:17 33 4
gpt4 key购买 nike

我使用 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。

最佳答案

Loadable 创建的组件公开了一个静态预加载方法。在您的情况下,您需要导出每个 LoadableComponent 并预加载到您想要的适当文件 *.js 中。示例:

import { LoadableComponent } from './Component1Loader'

// Preload here
LoadableComponent.preload()

...

<Router>
<Switch>
<Route exact path="/page1" component={Component1Loader} />
<Route exact path="/page2" component={Component2Loader} />

https://github.com/jamiebuilds/react-loadable#preloading

关于react-router - 使用 React Loadable 和 React Router 基于路由预取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49474450/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com