드림오구
article thumbnail
Published 2023. 4. 17. 23:55
🌙 [React] Hook - useEffect 🐣 STUDY/React

1. 🌊 Hook - useEffect

: useEffect는 렌더링될 때 마다 특정 작업을 수행하도록 설정할 수 있는 Hook이다.  

 

1.1. useEffect

<javascript />
import React, { useState } from 'react'; export default function Info() { const [name, setName] = useState(''); const [nickname, setNickname] = useState(''); useEffect(() => { console.log('렌더링 완료'); console.log({ name, nickname }); }); const onChangeName = (e) => { setName(e.target.value); }; const onChangeNickname = (e) => { setNickname(e.target.value); }; return ( <div> <input value={name} onChange={onChangeName} /> <input value={nickname} onChange={onChangeNickname} /> <div> <div> <b>이름 : </b> {name} </div> <div> <b>닉네임 : </b> {nickname} </div> </div> </div> ); }

 

useEffect

상태값이 변할 때 마다 리렌더링 되고, 리렌더링 될 때 마다 useEffect에서 설정한 함수가 실행되는 것을 확인할 수 있다. useEffect는 2번째 인수에 따라 1번째 인수를 호출할 시기를 정할 수 있다.

useEffect

 

 

1.1.1. 처음에만 실행하고 싶을 때

<javascript />
useEffect(() => { console.log('드림오구') }, []); // useEffect의 2번째 인자를 []으로 넣어준다.

 

1.1.2. 특정 값이 업데이트 될 때만 실행되고 싶을 때

<javascript />
useEffect(() => { console.log('드림오구') }, [name]); // name값이 변할 때 마다 호출한다.

 

1.1.3. 뒷정리하기

컴포넌트가 언마운트 되기 전 또는 업데이트 되기 직전 어떠한 작업을 수행하고 싶다면 useEffect에서 뒷정리 함수를 반환해야한다.

<javascript />
useEffect(() => { console.log('드림오구') return () => { console.log('뒷정리 했다!') } }, [name]); // 업데이트 전 뒷정리를 위해 함수를 return 한다.

 

 

리액트를 다루는 기술 을 참고하였습니다.

 

'🐣 STUDY > React' 카테고리의 다른 글

🌙 [React] useMemo  (2) 2023.04.18
🌙 [React] Hook - useReduce  (2) 2023.04.18
🌙 [React] Hook - useState  (2) 2023.04.17
🌙 [React] 이벤트 핸들링  (2) 2023.04.03
🌙 [React] 컴포넌트  (1) 2023.03.27
profile

드림오구

@드림오구