SMALL
리액트 18버전 이상부터는 automatic batch 라는 기능이 생겼다.
동일한 state 변경함수들이 연달아서 여러개 처리되어야한다면
동일한 state 변경함수를 다 처리하고 마지막에 한 번만 재렌더링된다.
// ex
const plus = ()=>{
setNum(num*2);
console.log('num 곱하기: ', num);
setNum(num+1);
console.log('num 더하기:', num);
}
위 코드는 마지막 setNum(num+1)만 실행되어 num값이 +1만 증가한다.
변경함수를 각각 실행하고 싶다면, 변경함수(콜백함수) 이렇게 코드를 작성해서 콜백함수 첫번째 인자에 값을 넣으면 이전 state값이 들어간다.
// ex
const plus = ()=>{
setNum((prev)=>{
console.log('num곱하기: ', prev*2);
return prev * 2;
})
setNum((prev)=>{
console.log('num더하기: ', prev+1);
return prev + 1;
})
}
LIST
'일반' 카테고리의 다른 글
useEffect (0) | 2023.08.27 |
---|---|
useRef (0) | 2023.08.27 |
객체 안에서 key를 [ ]로 감싸면 (0) | 2023.08.27 |
비구조화 할당 문법으로 props 추출 (0) | 2023.08.26 |
props - default, children (0) | 2023.08.26 |