[React] Lifecycle

mandarinduk·2020년 9월 19일
0

Wecode

목록 보기
10/16

Lifecycle 기본 순서

  1. constructor
  2. render
  3. componentDidMount
  4. (fetch 완료)
  5. render
  6. (setState)
  7. componentDidUpdate (setState 되었기 때문에 컴포넌트 업데이트 발생)

Lifecycle로 인한 오류

  1. constructor
  2. render
    • console.log("render") >>> 문제 없음
    • console.log(this.state.data[0].name) >>> 💥에러 발생

빈 배열의 0번째 index, 즉 this.state.data[0] 은 undefined이기 때문에 위와 같은 에러가 발생하게 됩니다.

해결방법

AND 연산자(&&)를 사용한 조건부 렌더링

  • 조건을 걸어서 내가 원하는 데이터가 있는 경우에만 렌더링을 시켜주는 방법으로 에러를 해결할 수 있습니다.

부모 - 자식 Lifecycle

  1. 부모 constructor
  2. 부모 render (부모 render 안에 있는 자식 컴포넌트로 넘어감)
  3. 자식 constructor
  4. 자식 render
  5. 자식 componentDidMount (여기까지 하고 부모 컴포넌트로 다시 넘어감)
  6. 부모 componentDidMount
  7. 부모 fetch 완료 (setState 발생 > 업데이트 발생 > 다시 render)
  8. 부모 render (부모 render 안에 있는 자식 컴포넌트로 넘어감)
  9. 자식 render
  10. 자식 componentDidUpdate
    (componentDidMount는 최초 렌더 시 한 번만 실행되기 때문에 componentDidUpdate 발생. 여기까지 하고 다시 부모로 넘어감.)
  11. 부모 componentDidUpdate
    (componentDidMount는 최초 렌더 시 한 번만 실행되기 때문에 componentDidUpdate 발생)
profile
front-end 신입 개발자

0개의 댓글