티스토리 뷰
React를 사용할 때는 컴포넌트를 클래스 또는 함수로 정의할 수 있습니다. 클래스 컴포넌트로 정의를 할 경우 각각의 컴포넌트는 컴포넌트의 라이프 사이클 즉, 수명주기가 존재합니다. 컴포넌트의 수명은 일반적으로 페이지에서 렌더링 되기 전 준비 과정에서 시작해 페이지에서 사라질 때 끝이 납니다.
위 이미지는 리액트 클래스형 컴포넌트의 라이프 사이클을 나타냅니다. (v16.4)
1. 라이프 사이클의 분류
(v16.4 기준으로 라이프 사이클에 대해 정리해보겠습니다.)
라이프 사이클은 생성 될 때, 업데이트 할 때, 제거 할 때로 크게 세가지 유형으로 나눌 수 있습니다. (위 사진 참고) 이를 리엑트에서 마운트, 업데이트, 언마운트 라고 합니다.
- 마운트 : 컴포넌트가 처음 실행될 때 그것을 Mount라고 표현
- 업데이트
1) props가 바뀔 때
2) state가 바뀔 때
3) 부모 컴포넌트가 리렌더링 될 때
4) this.forceUpdate로 강제 렌더링을 할때 - 언마운트 : 컴포넌트가 제가 될 때 unMount라고 표현
1-1. 마운트
constructor(), render(), componentDidMount() 순으로 생명 주기를 가집니다.
- constructor() : 컴포넌트가 처음 만들어질 때 실행되는 생성자입니다.
- render() : 클래스형 컴포넌트에선 render를 쓰지 않고 컴포넌트를 렌더링할 수 없습니다.
- componentDidMount() : 컴포넌트의 첫 번째 렌더링이 마치고 나면 호출됩니다. 컴포넌트가 화면에 나타난 상태이므로, DOM의 속성을 읽거나 직접 변경하는 작업을 진행합니다.
1-2. 업데이트
shouldComponentUpdate(), render(), componentDidUpdate() 순으로 생명 주기를 가집니다.
- shouldComponentUpdate() : 아직 render하기 전에 호출하며, return false를 하면 render을 취소가 가능하기 때문에 주로 성능 최적화를 합니다.
- render()
- componentDidUpdate() : 리렌더링 완료 후에 호출합니다. 이미 업데이트되었기 때문에 바뀌기 이전의 props, state 정보를 가지고 있습니다.
1-3. 언마운트
componentWillUnmount() 하나의 생명주기를 가집니다.
- componentWillUnmount() : 컴포넌트가 마운트 해제되어 제거되기 직전에 호출합니다.
리엑트 클래스형 컴포넌트의 라이프 사이클은 클래스형 컴포넌트로 개발을 할 때 가장 기본적이고 필수적으로 알고 있어야 한다! 특히 마운트, 업데이트 과정은 자주 쓰이므로 더 자세하게 알아두자!
(나중에 함수형 컴포넌트의 생명주기도 정리해보자!)
'JavaScript > React' 카테고리의 다른 글
React - 상태관리 zustand - 기초 (0) | 2022.05.17 |
---|---|
React - FunctionalComponent. 로컬변수 (1) | 2022.05.02 |
React - ClassComponent 전역변수 (1) | 2022.04.25 |
React - FunctionalComponent. Hook? (0) | 2022.04.19 |
React - FunctionalComponent. 함수형 컴포넌트? (4) | 2022.04.18 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- react
- rewrites
- array
- 호이스팅
- redux
- 함수형 컴포넌트
- zustand
- 1급 객체
- 매겨변수와 인자
- 목표 일기
- next.js 환경변수
- 1급 함수
- typescript
- vue
- Next.js
- redirects
- debouncing
- 자바스크립트 동작원리
- 타입스크립트
- 렌더링 속도 개선
- Virtual Scroll
- javascript
- programmers
- next.js에 .gitignore가 적용되지 않을 때
- 자바스크립트 비동기 동작원리
- React로 쓰로틀링 디바운싱 구현
- 가상스크롤
- useRef
- 시맨틱 웹
- 1급 시민
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함