#6 Effects

• useEffect
컴포넌트가 처음 render 될 때만 코드가 실행되길 원할 때 사용
ex) API를 통해 데이터 가져올 때
import { useState, useEffect } from "react";
➣ import에 useEffect 추가
<useEffect 사용 코드>
const iRunOnlyOnce = () =>{
console.log("CALL THE API...");
}
useEffect(iRunOnlyOnce,[]);
< 위 코드를 짧게 고친 코드>
console.log("i run all the time");
useEffect(() => {
console.log("CALL THE API..")
}, []);
➣ useEffect 2개의 인자 가진다
첫 번째 인자 : 실행될 함수
두 번째 인자 : 업데이트될 특정 데이터
*[ ] 일 경우 코드 단 한 번만 실행
[keyword, counter] 여러 개 가능
→ keyword, counter 변화 시 실행

<useEffect 2>

위 실행의 문제 : click버튼 누를 때마다 영화 검색 시킨다
useEffect(() => {
if(keyword !== "" && keyword.length > 5){
console.log("SEARCH FOR", keyword);
}
},[keyword])

• Cleanup funtion
그냥 function, 컴포넌트가 없어질 때도 실행
많이 사용하지는 않음
function Hello(){
useEffect(()=> {
console.log("created :) ");
return () => console.log("destroyed :(");
},[]);
return <h1>Hello</h1>
➣ function을 return


'React > 노마드코더 React' 카테고리의 다른 글
| [React] Set up (0) | 2024.07.13 |
|---|---|
| [React] Practice Movie App (0) | 2024.07.12 |
| [React] Create React App (0) | 2024.07.12 |
| [React] Props (0) | 2024.07.11 |
| [React] State (1) | 2024.06.22 |