Development/React.js

사이드 이펙트와 useEffect

moretz0921 2022. 3. 15. 19:56

 

 

 

사이드 이펙트 정리하기 
: 외부에 부수적인 작용 정리 

 


리엑트에서는 useEffect 사용
: 사이드 이펙트를 실행하고 싶을 때 사용한다. 리엑트 외부에 있는 데이터나 상태를 변경할 때 사용한다.

 


사이드 이펙트 예시 
- DOM 노드를 직접 변경
- 브라우저에 데이터를 저장

 

useEffect(() => {
  localStorage.setItem('theme', theme); // 로컬 스토리지에 테마 정보를 저장
}, [theme]);


- 네트워크 요청 

 

useEffect(() => {
  fetch('https://example.com/data') // 외부로 네트워크 리퀘스트
    .then((response) => response.json())
    .then((body) => setData(body));
}, [])

 


- 페이지 정보 변경

 

useEffect(() => {
  document.title = title; // 페이지 데이터를 변경
}, [title]);


- 타이머 

 

useEffect(() => {
  const timerId = setInterval(() => {
    setSecond((prevSecond) => prevSecond + 1);
  }, 1000); // 1초마다 콜백 함수를 실행하는 타이머 시작
  
  return () => {
    clearInterval(timerId);
  }
}, []);




좋은 점
- 동기화에 쓰면 유용하다.

 

동기화 : 컴포넌트 안에 데이터와 리엑트 바깥에 있는 데이터를 일치시킨다.

'Development > React.js' 카테고리의 다른 글

전역 데이터 다루기, Context API  (0) 2022.03.15
React Hooks  (0) 2022.03.15
ref로 DOM 노드 가져오기  (0) 2022.03.15
제어 컴포넌트와 비제어 컴포넌트  (0) 2022.03.15
리엑트 입력 폼 다루기  (0) 2022.03.15