일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- design pattern
- IT
- Spring
- Java
- 백준
- 파이썬
- Kafka
- Algorithm
- mongoDB
- MySQL
- 자료구조
- Data Structure
- Heap
- 컴퓨터구조
- JPA
- MSA
- react
- 알고리즘
- C
- 운영체제
- OS
- c언어
- Galera Cluster
- 디자인 패턴
- redis
- Proxy
- 자바
- 네트워크
- JavaScript
- spring webflux
Archives
- Today
- Total
시냅스
TIL : React { Code splitting } 본문
Code splitting : 번들이 거대해져 로드 시간을 줄이기 위해 코드를 분할한다. (lazy init...?)
import
import("./math").then(math => { console.log(math.add(16, 26)); });
Webpack 이 위 구문을 만나면 앱의 코드를 분할함, CRA를 사용한다면 WebPack에서 구성 되어 있음
React.lazy : 서버 사이드 렌더링에서는 불가, Loadable Components 사용해야 함.
const OtherComponent = React.lazy(() => import('./OtherComponent'));
import 를 동적으로 호출, Promise로 반환
import React, { Suspense } from 'react'; const OtherComponent = React.lazy(() => import('./OtherComponent')); function MyComponent() { return ( <div> <Suspense fallback={<div>Loading...</div>}> <OtherComponent /> </Suspense> </div> ); }
fallback 을 통해 로딩될 때 보여줄 엘리먼트 불러옴
Route-based code splitting
import React, { Suspense, lazy } from 'react'; import { BrowserRouter as Router, Route, Switch } from 'react-router-dom'; const Home = lazy(() => import('./routes/Home')); const About = lazy(() => import('./routes/About')); const App = () => ( <Router> <Suspense fallback={<div>Loading...</div>}> <Switch> <Route exact path="/" component={Home}/> <Route path="/about" component={About}/> </Switch> </Suspense> </Router> );
라우트에서 코드스플리팅을 적용 하기에 가장 좋다
현재는 default exports만 지원 중
'ReactJS' 카테고리의 다른 글
React-Query 사용법 (0) | 2021.12.03 |
---|---|
React Hook Form 사용법 (0) | 2021.12.02 |
React에서 dotenv를 사용하는 방법 (0) | 2021.11.27 |
React connected-react-router, react-router-dom, history 버전 충돌 (0) | 2021.11.23 |
TIL : React { Hooks } (0) | 2021.11.20 |
Comments