공부/React

React 데이터 흐름, Lifting State UP(상태 끌어올리기), side Effect

조용한외침 2021. 8. 4. 22:49

🔔React 데이터 흐름

  • 하나의 컴퍼넌트는 한가지 일만한다.
  • 데이터는 위에서 아래로 흐르며 컴퍼넌트는 컴퍼넌트 바깥에서 props를 이용해 데이터를 인자나 속성처럼 전달 받을 수 있다.
    - props 와 state가 혼동이 올 수 있다. (State)
  • 데이터가 위에서 아래로 흐르기 때문에 데이터의 전달은 부모 컴퍼넌트가 된다. ( = 단방향 데이터 흐름(One-way data flow))

 

🔔 State 끌어 올리기 (Lifting State UP)

  • 리액트의 단방향 데이터 흐름을 통해 하위 컴퍼넌트는 상위 컴퍼넌트로부터 전달 받은 데이터가 어떤 형태인지 알 수 있다.
  • 하위 컴퍼넌트에서 특정 이벤트로 인해 상위 컴퍼넌트의 상태가 바뀌는 것은 '역방향'으로 진행이 된다고 볼 수 있다.
  • 그래서 상위 컴퍼넌트의 "상태를 변경하는 함수" 자체를 하위 컴퍼넌트로 전달, 이 함수를 하위 컴퍼넌트에서 실행한다.
    = 상태 끌어올리기

 

🔔 Side Effect

  • 순수함수 = 오직 함수의 입력만이 함수의 결과에 영향을 주는 함수(함수 외부의 값에 영향을 주면 순수함수 X)
  • 실행 조건 = 컴퍼넌트가 렌더링 될때 실행이라고 생각하면 된다.
    - 컴포넌트 생성 후 처음 화면에 렌더링
    - 컴퍼넌트에 새로운 props가 전달 되며 렌더링
    - 컴퍼넌트에 상태(state)가 바뀌며 렌더링
  • useEffect (함수,[]) - 처음 컴퍼넌트가 생성 될때만 생성
  • useEffect (함수,[something]) - something이 실행 될때마다 생성
  • useEffect (함수) - 계속 실행된다고 생각한다(why? 직접해본 결과 계속 생성(확실한 정보는 아니다.))