Effect Hook

N·2022년 6월 14일
0
  • React의 함수 컴포넌트는, props가 입력으로, JSX Element가 출력으로 나감 -> 여기에는 그 어떤 Side Effect도 없으며, 순수 함수로 작동함

  • React 애플리케이션을 작성할 때에는, AJAX 요청이 필요하거나, LocalStorage 또는 타이머와 같은 React와 상관없는 API를 사용하는 경우가 발생
    -> 이는 React의 입장에서는 전부 Side Effect
    -> React는 Side Effect를 다루기 위한 Hook인 Effect Hook을 제공

  • React 컴포넌트에서의 Side Effect
    1) 타이머 사용 (setTimeout)
    2) 데이터 가져오기 (fetch API, localStorage)

  • React에서 Ajax 요청을 보낼 때는 Effect Hook을 사용한다 -> 만약 훅을 사용하지 않고 네트워크 요청을 하면 그 동안에 페이지가 멈추거나 깜빡일 수 있다

  • 함수 내에서 어떤 구현이 함수 외부에 영향을 끼치는 경우 해당 함수는 Side Effect가 있다고 함
    -> React에서는 컴포넌트 내에서 fetch를 사용해 API 정보를 가져오거나 이벤트를 활용해 DOM 직접 조작할 때 Side Effect가 발생

  • 순수 함수에는 네트워크 요청과 같은 Side Effect가 없음
    -> 순수 함수의 특징 중 하나는, 어떠한 전달 인자가 주어질 경우, 항상 똑같은 값이 리턴됨을 보장
    -> '순수 함수' = '예측 가능한 함수'

  • React Hook은 최상위에서만 호출

  • 조건문, 반복문 안에서는 사용하지 않는다

profile
web

0개의 댓글