250x250
반응형
- Today
- Total
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- server action
- useRouter
- styled-component
- react life sycle
- react
- next.js toast
- 자바스크립트
- 비동기 병렬처리
- 훈련소
- resolved to branch.
- 오블완
- svgr
- query param
- angular
- localStorage
- 훈련소 후기
- 리액트 알림
- react toast
- The above error occurred in the
- 리액트 라이프사이클
- 오라클클라우드
- 사회복무요원 훈련소
- no-use-before-define
- sessionStorage
- 리액트
- 자바스크립트 순수함수
- useformstatus
- 산업기능요원 훈련소
- 공익 훈련소
- NextJS
Archives
아 그거 뭐였지
[React] React Life-Sycle ( 클래스형, 함수형), 리액트 라이프 사이클 알아보기 본문
728x90
반응형
기술면접스터디를 진행하면서 발표자료 정리한것을 올려본다.
마운트란?
- DOM 객체가 생성되고 컴포넌트가 브라우저에 나타나는 것
언마운트란?
- 화면의 렌더링된 컴포넌트를, 삭제하기 까지의 과정
- 애플리케이션에서 리소스를 확보하기위해 사용하지 않는 컴포넌트의 리소스를 회수하기위해
클래스형 컴포넌트
언제 리렌더링이되는지?
- 새로운 props값을 받았을때
- state값이 변경되었을때
- 부모 컴포넌트가 리렌더링됐을때 (props값이 변경되지않아도 부모컴포넌트가 리렌더링되면 자식컴포넌트도 리렌더링됨)
- forceUpdate가 실행될때 (권장하지않음, state와 props외의 값에 의존하기때문)
- forceUpdate: props 나 state 가 아닌 다른 값이 변경되었을 때 리렌더링을 하고싶을때사용
https://projects.wojtekmaj.pl/react-lifecycle-methods-diagram/
Mount
아래 메서드들은 컴포넌트의 인스턴스가 생성되어 DOM 상에 삽입될 때에 순서대로 호출된다.
- constructor():
- 리액트 컴포넌트가 마운트되기전 실행
- state에 초기값을 할당하거나 클래스 메소드를 정의할때만 사용 ( props로 초기값 할당 금지)
- steState사용금지
- getDerivedStateFromProps()
- props 로 받아온 것을 state 에 넣어주고 싶을 때 사용
- render():
- 메서드는 클래스 컴포넌트에서 반드시 구현돼야하는 유일한 메소드
- props와 state값을 활용해서 react element들을 반환함
- render메소드 호출이후 반환된 element들로 react가 DOM, refs를 업데이트한다.
- componentDidMount():
- 컴포넌트 출력물이 렌더링 된 이후에 실행 되는 메소드
- 주로 네트워크 요청 담당
Update
props 또는 state가 변경되면 리-렌더링된다. 아래 메서드들은 컴포넌트가 리-렌더링될 때 순서대로 호출된다.
- getDerivedStateFromProps():
- 위와 설명동일
- shouldComponentUpdate():
- props 또는 state가 새로운 값으로 갱신되어서 렌더링이 발생하기 직전에 호출
- 오직 성능최적화를 위한 메소드
- 초기 렌더링 또는 forceUpdate()가 사용될 때에는 호출되지 않는다.
- 초기값은 true이다 false이면 렌더링이되지않는다.
- render():
- 위와 설명동일
- componentDidUpdate()
- 리-렌더링이 발생한 직후에 호출된다. 이 메서드는 최초 렌더링에서는 호출되지 않는다.
- 컴포넌트가 리-렌더링되었을때 DOM을 조작할때 사용
- shouldComponentUpdate()가 false를 반환하면 실행하지않음
Unmount
- componentWillUnmount():
- 컴포넌트가 마운트 해제되어 제거되기 직전에 호출된다.
- 해당 메소드가 실행되면 컴포넌트가 언마운트되고 재 마운트되지않는다
함수형 컴포넌트
render의 역할을 함수가 컴포넌트를 return하는것으로 대체
componentDidMount, componentDidUpdate, componentWillUnmount
의 기능을 하는것이 useEffect
리렌더링 조건은 클래스형과 메소드를 제외하고 동일하다.
- 새로운 props값을 받았을때
- state값이 변경되었을때
- 부모 컴포넌트가 리렌더링됐을때 (props값이 변경되지않아도 부모컴포넌트가 리렌더링되면 자식컴포넌트도 리렌더링됨)
https://wavez.github.io/react-hooks-lifecycle
Mount
- 함수 내부를 실행시킨다.
- 함수 내부의 변수들을 초기화한다.
- return에 미리 구현해놓은 JSX를 실행시킨다.
- useEffect가 작동한다.
- 의존성 배열이 없을경우: 화면이 렌더링 된후 실행이되며 리렌더링 될때마다 실행된다.
- 의존성 배열이 빈배열 [] 일경우: 화면이 렌더링 된 이후 한번만 실행된다.
- 의존성 배열에 값이 있을경우: 화면이 렌더링 된 이후 실행되고 해당 값이 변경 되었을경우에만 실행된다.
Update
- state의 값이 변경되거나 props의 값이 변경, 부모컴포넌트가 리-렌더링될때 리-렌더링한다.
Unmount
- 컴포넌트가 언마운트될때 실행된다. useEffect내부에 cleanup 함수가 작성되어있다면 이때 실행한다.
- 클린업 함수는 언마운트될때, 의존성배열에 값이있으면 값이있을때마다 실행된다.
참고링크
https://ko.legacy.reactjs.org/docs/react-component.html#constructor
https://react.dev/reference/react/Component
728x90
반응형
'Front-End' 카테고리의 다른 글
[NextJS] 새로워진 Image태그를 알아보자 (image layout fill) (1) | 2023.10.17 |
---|---|
[React] 리액트 렌더링 최적화에대해 알아보자 .with (useMemo, useCallback, React.mamo) (0) | 2023.06.04 |
[NextJS] react-tostify로 toast알림 구현하기 (.with styled-component, customHooks) (0) | 2023.04.05 |
[NextJS] 로그인 판별하여 페이지 리다이렉트 시켜주기 .with GetServerSideProps (0) | 2023.03.28 |
[Git] fatal: ~ cannot be resolved to branch. 해결 (0) | 2023.03.22 |
Comments