React/처음 만난 리액트(react)

State와 Lifecycle의 정의

yooni825 2023. 10. 11. 12:27
  • react component 중 class component와 관련된 내용

state 상태

  • JavaScript의 객체
  • 리액트 component의 상태를 의미 -> 리액트 Component의 변경 가능한 데이터
  • 개발자가 직접 정의함
  • 중요한 점! 렌더링이나 데이터 흐름에 사용되는 값만 state에 포함시켜야 함 / 그렇지 않은 값은 컴포넌트의 인스턴스 필드로 정의하면 됨

-> state가 변경될 경우 컴포넌트가 재렌더링되기 때문에 렌더링과 데이터 흐름에 관련 없는 값을 포함하면 불필요한 경우에 컴포넌트가 다시 렌더링되어 성능을 저하시킬 수 있기 때문

 

모든 클래스 컴포넌트에는 Constructor 함수가 존재함 -> 생성자 함수이며 클래스가 생성될 때 실행되는 함수

 

class component -> state를 생성자에서 정의함

함수 컴포넌트 -> state를 useState라는 hook을 사용해서 정의

 

state는 직접적인 변경이 불가하기 때문에

setState함수를 사용해 수정한다.

 

Lifecycle 생명주기

: 컴포넌트가 생성되는 시점과 사라지는 시점이 정해져 있다는 의미

 

출생 Mount

  • 컴포넌트의 Constructor 생성자가 실행됨 / 생성자에서는 컴포넌트의 state를 정의하게 됨
  • 컴포넌트가 렌더링됨
  • componentDidMount 함수가 호출됨

인생 Update

  • 컴포넌트의 props가 변경
  • setState함수 호출에 의해 state가 변경
  • falseUpdate라는 강제 업데이트 함수 호출로 인해 컴포넌트가 다시 렌더링됨
  • 렌더링 이후 componentDidUpdate 함수 호출

사망 Unmount

  • 상위 컴포넌트에서 현재 컴포넌트를 더 이상 화면에 표시하지 않게 될 때 unmount됨
  • unmount 직전에 componentWillUnmount 함수가 호출됨

 

Con.

component가 계속 존재하는 것이 아니라, 시간의 흐름에 따라 생성되고 업데이트 되다가 사라짐 -> 함수 컴포넌트에도 해당하는 내용임

'React > 처음 만난 리액트(react)' 카테고리의 다른 글

useMemo, useCallback, useRef  (0) 2023.10.11
Hooks의 개념과 useState, useEffect  (0) 2023.10.11
(실습) 댓글 컴포넌트 만들기  (0) 2023.09.29
(실습) 시계 만들기  (0) 2023.09.29
Component 합성과 추출  (0) 2023.09.29