const Test = () => {
const [count, setCount] = useState(1)
useEffect(() => {
setCount(count + 1);
setCount((count) => count + 1)
setCount(count + 1);
setCount((count) => count + 1)
setCount(count + 1);
setCount((count) => count + 1)
}, [])
//결과 : 3
const [count1, setCount1] = useState(1);
useEffect(()=>{
setCount1(count1 + 1);
setCount1(count1 + 1);
setCount1(count1 + 1);
},[])
//결과 : 1
const [count2, setCount2] = useState(1);
useEffect(()=>{
setCount2(prev=> prev + 1);
setCount2(prev=> prev + 1);
setCount2(prev=> prev + 1);
}, [])
//결과: 3
return (
<div className='headerStyle'>
count: {count}
<br/>
count1: {count1}
<br/>
count2: {count2}
</div>
)
}
(setCount2(prev=> prev + 1))===updater함수
많은 리렌더링을 줄이고자 배치(Batch) 기능을 사용하여 마지막 한번만 적용된다객체
이기에 같은 참조값을 바라보면 React에서는 변화에 대한 감지를 할 수 없다출처 :https://velog.io/@devmag/React-state-%EB%B3%80%EA%B2%BD-%EC%8B%9C-%EC%99%9C-useState-setState%EB%A5%BC-%EC%93%B0%EB%8A%94%EA%B0%80
https://rinrin-dev.tistory.com/93
https://velog.io/@win/useEffect%EC%97%90-%EB%8C%80%ED%95%98%EC%97%AC2
https://velog.io/@wjdcksdud29/React-setState-useState%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-%EC%9D%B4%EC%9C%A0-TIL-53