useState
데이터 변경,비동기, if 분기 불가, 동기적 시행 가능
- 호출 → 즉시 UI 변경 X → 이벤트 핸들러에 스케쥴 등록 (함수가 끝나야 변경, 그 사이 변경 안됨)
- top level 에서만 사용 (if문, 분기 처리 등에서 useState() 사용 불가) → 리액트가 트리 이해 못 함. → 첫 로드에는 에러가 없지만 리랜더링시 에러 발생.
- 비동기
- setState 여러번 호출해도 리랜더링 종료 후 한번만 바뀜 (중간에 콘솔 찍으면 변화가 없음)
- 동기적으로 진행하고 싶다면 → setCount((like)=>like+1) (이전 값을 명시적으로 표현)
- useState의 초기화에 함수가 필요한 경우.
lazy 초기화 (function 사용)
const [watched, setWatched] = useState(function () {
const storedValue = localStorage.getItem("watched");
return JSON.parse(storedValue);
});
비동기라는게 중요
-> 한 함수 안에 여러번 써도 한번의 값만 완료 됨.
-> 분기 처리로 hook을 쓰면 에러남.
'React > know' 카테고리의 다른 글
성능 최적화 : React Dev Tool, React.lazy (2) | 2024.11.19 |
---|---|
useEffect 알아보기 (0) | 2024.11.18 |
useRef 알아보기 (0) | 2024.11.17 |
최적화를 위해 필요한 기능 memo, useMemo, useCallback (1) | 2024.11.13 |
Key는 왜 쓰는 걸까? (0) | 2024.11.13 |