app.jsx 1002 B

12345678910111213141516171819202122232425262728293031323334
  1. import React, {lazy, Suspense} from 'react';
  2. import {BrowserRouter, Route, Link, Switch} from 'react-router-dom';
  3. import {hot} from 'react-hot-loader/root';
  4. import ApplicationLayout from './components/layout/application_layout';
  5. const Pokemon = lazy(() => import('./components/pages/pokemon'));
  6. const NotFound = lazy(() => import('./components/pages/not_found'));
  7. const TestComponent = lazy(() => import('./components/test_component'));
  8. import './assets/stylesheets/app.scss';
  9. function App() {
  10. return (
  11. <BrowserRouter>
  12. <Suspense fallback={<div>Loading...</div>}>
  13. <ApplicationLayout>
  14. <Switch>
  15. <Route component={TestComponent} exact path='/' />
  16. <Route component={Pokemon} path='/pokemon' />
  17. <Route component={NotFound} />
  18. </Switch>
  19. <p>
  20. <Link to='/pokemon'>Show me the pokemon!</Link>
  21. </p>
  22. </ApplicationLayout>
  23. </Suspense>
  24. </BrowserRouter>
  25. );
  26. }
  27. export default hot(App);