https://yeoulcoding.tistory.com/169
const [count, setCount] = useState(0);
const onCount = () => {
// 같은 setState가 여러번 실행
setCount(count + 1);
setCount(count + 1);
setCount(count + 1); // 마지막 setState만 적용됨
}
// count는 3이 될 것 같지만, 마지막 값이 적용되며 1로 업데이트
const onCount = () => {
setCount(prev => prev + 1);
setCount(prev => prev + 1);
setCount(prev => prev + 1);
}
https://ko.reactjs.org/docs/hooks-reference.html#bailing-out-of-a-state-update
object.is를 활용한다/* 객체 키 매핑형 */
const [user, setUser] = React.useState({
email: '',
password: ''
})
const { email, password } = user
function onInput(e) {
setUser({
...user,
[e.target.name]: e.target.value
})
}
// HTML
<input
type='text'
name='email'
value={email}
onClick={onInput}
/>
<input
type='password'
name='password'
value={password}
onClick={onInput}
/>
/* 최신값 참조 */
// useCallback 활용
const onCount = useCallback(() => {
setCount(count + 1)
}, [count])
// 함수형 업데이트 활용
const onCount = useCallback(() => {
setCount(prev => prev + 1)
}, [])
/* 상태 업데이트 후 후처리를 위해 useEffect 활용 가능 */
useEffect(() => {
// 후처리
}, [count])
좋은 글 감사합니다!