summaryrefslogtreecommitdiff
path: root/src/components/Root.js
diff options
context:
space:
mode:
authorHaishan <[email protected]>2019-01-05 23:25:46 +0800
committerHaishan <[email protected]>2019-01-05 23:25:46 +0800
commit0e7877ad6285b4030fbe534a6f9ef805b61aa45b (patch)
treee6f5f614a4e479165c73cdad7dd1e97307215b26 /src/components/Root.js
parent99a857efd6537787c17431ad6276d769424e2ebc (diff)
build: optimize js chunk splitting
Diffstat (limited to 'src/components/Root.js')
-rw-r--r--src/components/Root.js33
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>