useEffect

jplendor·2022년 3월 4일
0
post-thumbnail

useEffect란?

  • 어떤 component가
    • mount 되거나 (화면에 처음 렌더링되어 나타날 때)
    • update 되거나 (props 변경, state 변경, 부모 component 리렌더링, 강제 렌더링될 때)
    • unmount 될 때 (dom에서 제거되어 화면에서 사라질때)
      수행된다.

useEffect 사용법

  • useEffect는 두개의 arguments를 받는다. (callback function과 dependency array, dependency array는 필수가 아니다.)
    • 1) callback function만 넘기는 경우
      useEffect(() => { // 실행될 작업 }) : 렌더링될 때 마다 실행
    • 2) callback function과 dependency array를 모두 넘기는 경우
      useEffect(() => { // 실행될 작업 }, [dependency array])
      • 2-1) dependency array가 빈 배열인 경우
        useEffect(() => { // 실행될 작업 }, []) : 처음 렌더링될 때만 실행
      • 2-2) dependency array에 props나 state를 작성한 경우
        useEffect(() => { // 실행될 작업 }, [prop, state]) : 처음 렌더링될 때 + props나 state의 value가 변경될 때 마다 실행

Effect Cleanup (종료하기)

  • useEffect의 리턴 값으로 종료하기 위한 함수를 작성한다.
    useEffect(() => {
        const timer = setInterval(() => {
            console.log("타이머 작동중...")
        }, 1000)

        return () => {
            clearInterval(timer)
            console.log("타이머 종료")
        }        
    }, [])
profile
만들기는 재밌어!

0개의 댓글