[React] useEffect = 생명주기 동안에 발생하는 부수 효과를 수행하는 Hook

2023. 12. 6. 01:08·Front/react

useEffect

  • 컴포넌트가 마운트되었을 때, 업데이트되었을 때, 언마운트되었을 때 등 여러 시점에서 부수 효과를 실행할 수 있도록 함
function Post(){

  useEffect(()=>{
    (오래 걸리는 연산 코드)
  });
  
  return (
  ...생략
  )
}
  • 이런 식으로 작성하면, html이 모두 렌더링이 되고 연산을 수행함 (useEffect 안에 적은 코드들은 html 렌더링 이후에 동작함)
  • 재렌더링마다 코드 실행함.

 

useEffect(()=>{ 실행할코드 }, [])
  • 둘째 파라미터로 [ ] 넣을 수 있음
    • 변수나 state를 넣는 곳인데, [ ] 내에 있는 변수나 state가 변할 때만 useEffect 안의 코드를 실행함.
  • [ ] 에 아무것도 넣지 않으면, 그냥 마운트 될 때 딱 한번만 실행하고 또 실행하지 않음.

clean up function  : useEffect 동작 전 특정 코드 실행

useEffect(()=>{ 
  그 다음 실행 코드
  return ()=>{
    먼저 실행 코드
  }
})
  • useEffect 코드가 실행 되기 전에 깔끔하게 실행해주고 싶을 때 활용이 되서 'clean up function'이라고 부름
  • clean up function은 mount시에는 실행되지 않고, unmount시 실행됨.
  • clean up function은 useEffect 안의 코드 실행 전에 항상 실행됨.

 

useEffect(()=>{ 
  그 다음 실행 코드
  return ()=>{
    먼저 실행 코드
  }
}, [])
  • 여기서도 [ ] 을 추가하면 unmount시 clean up function가 딱 한번만 실행됨.

버그를 방지하기 위해서 활용, 타이머 제거, socket 연결요청 제거, ajax 중단 등 여러 곳에 활용할 수 있다.

'Front > react' 카테고리의 다른 글

[React] axios = 라이브러리를 이용한 AJAX  (0) 2023.12.06
[React] styled-components = 스타일 컴포넌트로 바로 만들기  (0) 2023.12.06
[React] nasted routes = 서브 경로  (0) 2023.12.04
[React] import, export 코드 분할  (0) 2023.12.04
'Front/react' 카테고리의 다른 글
  • [React] axios = 라이브러리를 이용한 AJAX
  • [React] styled-components = 스타일 컴포넌트로 바로 만들기
  • [React] nasted routes = 서브 경로
  • [React] import, export 코드 분할
6eom9eun
6eom9eun
  • 6eom9eun
    개발 공간
    6eom9eun
  • 전체
    오늘
    어제
    • 전체보기 (33)
      • Front (7)
        • flutter (2)
        • react (5)
      • Back (4)
        • node.js (2)
        • django (4)
      • AI (2)
      • KT Aivle (1)
      • Coding Test (13)
        • 프로그래머스 (5)
        • 백준 (8)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
    • 설정
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    OpenAI
    PYTHON
    poetry
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
6eom9eun
[React] useEffect = 생명주기 동안에 발생하는 부수 효과를 수행하는 Hook
상단으로

티스토리툴바