티스토리 뷰
오늘은 코드분할, React.lazy()와 Suspense에 대해서 공부하였다.
코드분할이란?
코드를 해석하고 실행하는 정도가 느려졌는지 파악해서,
번들을 나눈 뒤에 지금 필요한 코드만 불러오고 나중에 필요한 코드는 나중에 불러오는 아이디어
이를 통하여 대규모 프로젝트의 앱인 경우에도 페이지의 로딩 속도를 개선 가능
React.lazy()와 Suspense()
React에서 코드 분할하는 방법은 dynamic import(동적 불러오기)를 사용하는 것이다.
Rect.lazy() 통해 컴포넌트를 동적으로 import를 할 수 있어, 사용 시 초기 렌더링 시간을 줄 일 수 있다.
하지만 단독으로 쓰일 수는 없고, React.Suspense 컴포넌트의 하위에서만 React.lazy로 감싼
컴포넌트를 사용할 수 있다.
적용 예제
import { Suspense, lazy } from 'react';
import { BrowserRouter as Router, Routes, Route } from 'react-router-dom';
const Home = lazy(() => import('./routes/Home'));
const About = lazy(() => import('./routes/About'));
const App = () => (
<Router>
<Suspense fallback={<div>Loading...</div>}>
<Routes>
<Route path="/" element={<Home />} />
<Route path="/about" element={<About />} />
</Routes>
</Suspense>
</Router>
);
라우터가 분기되는 컴포넌트에서 각 컴포넌트에 React.lazy를 적용시키고, 이를 Suspense로 감싸준다.
그 후, 로딩 시 보여줄 화면을 fallback 속성으로 주면,
초기 렌더링 시간이 줄고 페이지 이동 시 로딩 화면이 나타나게 됌
'코드스테이츠' 카테고리의 다른 글
TIL 23.03.28 (0) | 2023.03.28 |
---|---|
TIL 23.03.27 (0) | 2023.03.27 |
TIL 23.03.23 (0) | 2023.03.23 |
TIL 23.03.17 (0) | 2023.03.17 |
TIL 23.03.16 (0) | 2023.03.16 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- SEB 43기
- dictionary
- 프로그래머스
- til
- 코드스테이츠
- SEB43기
- Redux
- SEB43
- 감정 일기장
- BFS
- useContext
- 프론트엔드
- 백준
- 개인 프로젝트
- 브루드포스
- 스택오버플로우
- 감정일기장
- 코테
- 프로젝트
- 기술면접
- 인적성
- React quill
- 회고
- 다이나믹 프로그래밍
- dfs
- seb
- SEB 43
- 그리디 알고리즘
- 프리프로젝트
- Python
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함