ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [React] useEffect
    React 2022. 6. 15. 16:57

    useEffect란? 

    useEffect() 함수는 React component가 렌더링 될 때마다 특정 작업(Sied effect)을 실행할 수 있도록 하는 리액트 Hook입니다. 여기서 Side effect는 component가 렌더링 된 이후에 비동기로 처리되어야 하는 부수적인 효과들을 뜻합니다. 이러한 기능으로 인해 함수형 컴포넌트에서도 클래스형 컴포넌트에서 사용했던 생명주기 메서드를 사용할 수 있게 되었습니다.

    Side Effect (부수 효과)

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

    대표적인 side Effect로는 API 요청이 있습니다. 

     

    조건부 effect 발생

    effect의 기본 동작은 모든 렌더링을 완료한 후 effect를 발생하는 것입니다. 이와 같은 방법으로 의존성 중 하나가 변경된다면 effect는 항상 재생성됩니다.

    그러나 이것은 이전 섹션의 구독 예시와 같이 일부 경우에는 과도한 작업일 수 있습니다. source props가 변경될 때에만 필요한 것이라면 매번 갱신할 때마다 새로운 구독을 생성할 필요는 없습니다.

    이것을 수행하기 위해서는 useEffect에 두 번째 인자를 전달하세요. 이 인자는 effect가 종속되어 있는 값의 배열입니다. 이를 적용한 예는 아래와 같습니다.

    const [condition,setCondition]= useState(false)
    
    useEffect(()=>{
    console.log("condition")
    },[condition])

    condition 의 상태가 변경될때에만 useEffect 함수 안에 있는 console.log()가 실행됩니다.

    'React' 카테고리의 다른 글

    setState() 비동기 문제해결  (0) 2022.11.06
    Redux 란 무엇인가?  (0) 2022.08.30
    [React] state lifting(끌어올리기)  (0) 2022.06.14
Designed by Tistory.