diff options
| author | Haishan <[email protected]> | 2019-01-05 23:25:46 +0800 |
|---|---|---|
| committer | Haishan <[email protected]> | 2019-01-05 23:25:46 +0800 |
| commit | 0e7877ad6285b4030fbe534a6f9ef805b61aa45b (patch) | |
| tree | e6f5f614a4e479165c73cdad7dd1e97307215b26 /src/components/Root.js | |
| parent | 99a857efd6537787c17431ad6276d769424e2ebc (diff) | |
build: optimize js chunk splitting
Diffstat (limited to 'src/components/Root.js')
| -rw-r--r-- | src/components/Root.js | 33 |
1 files changed, 24 insertions, 9 deletions
diff --git a/src/components/Root.js b/src/components/Root.js index ec77540..bf1de3d 100644 --- a/src/components/Root.js +++ b/src/components/Root.js @@ -1,17 +1,30 @@ -import React from 'react'; +import React, { Suspense } from 'react'; import { Provider } from 'm/store'; import { HashRouter as Router, Route } from 'react-router-dom'; import { hot } from 'react-hot-loader/root'; // import createHistory from 'history/createHashHistory'; // import createHistory from 'history/createBrowserHistory'; +import Loading from 'c/Loading'; import ErrorBoundary from 'c/ErrorBoundary'; import SideBar from 'c/SideBar'; import Home from 'c/Home'; import Logs from 'c/Logs'; -import Proxies from 'c/Proxies'; -import Rules from 'c/Rules'; +// import Proxies from 'c/Proxies'; import Config from 'c/Config'; +const Proxies = React.lazy(() => + import(/* webpackChunkName: "proxies" */ + /* webpackPrefetch: true */ + /* webpackPreload: true */ + './Proxies') +); +const Rules = React.lazy(() => + import(/* webpackChunkName: "rules" */ + /* webpackPrefetch: true */ + /* webpackPreload: true */ + './Rules') +); + import APIDiscovery from 'c/APIDiscovery'; import { store } from '../store/configureStore'; @@ -32,12 +45,14 @@ const Root = () => ( <APIDiscovery /> <Route path="/" render={() => <SideBar />} /> <div className={s0.content}> - <Route exact path="/" render={() => <Home />} /> - <Route exact path="/overview" render={() => <Home />} /> - <Route exact path="/configs" render={() => <Config />} /> - <Route exact path="/logs" render={() => <Logs />} /> - <Route exact path="/proxies" render={() => <Proxies />} /> - <Route exact path="/rules" render={() => <Rules />} /> + <Suspense fallback={<Loading height="200px" />} maxDuration={10}> + <Route exact path="/" render={() => <Home />} /> + <Route exact path="/overview" render={() => <Home />} /> + <Route exact path="/configs" render={() => <Config />} /> + <Route exact path="/logs" render={() => <Logs />} /> + <Route exact path="/proxies" render={() => <Proxies />} /> + <Route exact path="/rules" render={() => <Rules />} /> + </Suspense> </div> </div> </Router> |
