바뀌는 것을 감지하여 어떠한 동작을 실행하도록 하기 위해 사용
useEffect(()=>{동작},[바뀌는 어떤 것])
useEffect(()=>{},[]) deps를 []으로 두면 처음 랜더링할때 한 번만 실행
원하는 타이밍에 호출시킬 함수를 만들기 위해 사용한다.(함수가 return된다.)
const [state, setState ] = useState('value')
const [fuc, setFuc] = useState(false)
useEffect(()=>{
if (fuc === true){
newState();
setFuc(false);
}
},[fuc])
const newState useCallback(()=>{
console.log(`New State : ${state}`)
},[state])
원하는 값을 업데이트하기 위해 사용
const person = useMemo(
() => (
<Person
name={name}
song={favoriteSong}
/>
),
[name, favoriteSong]
)