Я предлагаю следующий пример:
https://reacttraining.com/react-router/web/guides/code-splitting
react-loadable
- это пакет npm, который делает расщепление кода (также называемое отложенной загрузкой) довольно простым, а также предоставляет вам возможность рендерингазагрузка компонента до тех пор, пока не завершится отложенная загрузка.
Единственный недостаток в том, что если вы используете Babel
для переноса пакетов кода, вам придется добавить поддержку синтаксиса динамического импорта, webpack
уже имеет это по умолчанию, но Babel
нет.
Плагин Babel:
@babel/plugin-syntax-dynamic-import
сделает это возможным, добавив поддержку синтаксиса.
Я рекомендую react-loadable
более React.lazy
, поскольку это делает отображение загружаемого компонента в то время, как ленивая загрузка происходит ОЧЕНЬ легко, и предоставляет вам ловушки для отображения компонента ошибки и повторного импорта в случае сбоя.
Подробнее о react-loadable
здесь:
https://github.com/jamiebuilds/react-loadable
Ваш код будет выглядеть примерно так:
import Loadable from 'react-loadable';
import Loading from './YOUR-LOADING-COMPONENT';
const LoadableWallet = Loadable({
loader: () => import('eth-lightwallet/dist/lightwallet.min.js'),
loading: Loading,
});
export default class Wallet extends React.Component {
render() {
return <LoadableWallet/>;
}
}