React 17 code splitting

  1. dynamic import
    const SomeComponent = React.lazy(() => import('./SomeComponent'));
    							
  2. lazy load+ suspend
    
    Before: import Login from "Pages/Login.js"; 
    After: import React,{lazy, Suspense} from 'react'; 
    							
    const Service = lazy(() => import("module/Service")); 
    const Hero = lazy(() => import("module/Hero")); 
    
    const Home = () => { return (
    <div>
      <Suspense fallback={<div>Page is loading...</div>}>
    	<section>
    	  <Service />
    	  <Hero />
    	</section>
      </Suspense>
    </div>
    								
  3. react-router react-router-dom supports route-level code splitting:
    
    import { BrowserRouter as Router, Route, Switch } from
    'react-router-dom'; 
    const Home = lazy(() => import('./routes/Home'));
    const Shop = lazy(() => import('./routes/Shop')); 
    
    const App = () => {
    return (
    <Router>
      <Suspense fallback={<div>Page is Loading...</div>}>
        <Switch>
          <Route exact path="/" component="{Home}" />
          <Route path="/shop" component="{Shop}" />
        </Switch>
      </Suspense>
    </Router>
    ) }; 
<<previous article

Table of Contents