useState 리턴값이 배열인 이유

- useState 리턴값인 배열은 0번째 인덱스에는 state, 1번째 인덱스에는 setter 함수로 구성

-> 배열이라 자유롭게 네이밍  ex. const [name, setName] = useState("hi");

- 객체의 경우 배열과 달리 인덱스가 아니라, 객체의 key를 가져와야 구조분해할당이 되기 때문


useEffect

- 의존성 배열로 빈 배열 [] 을 주면 클린업 함수가 unmount 될 때 실행되는 효과

- 원래 클린업 함수(return)는 의존성 배열의 값이 변화(리렌더링)하거나, 언마운트 되었을 때 실행 

 

 useRef 를 null 로 초기화 하는 이유

- const ref = useRef(initialValue)

- 리액트 권장사항
- ref는 useRef가 실행되고, DOM이 렌더링될 때 까지 셋팅되지 않음 

- useRef는 변경할 수 있는(mutable) ref 객체를 반환하는데, ref.current는 파라미터 initialValue로 초기화 됨.

-> initialValue를 설정하지 않으면 ref.current = undefined 

error. TypeError: Cannot read properties of undefined (reading 'style') // 렌더링 전 접근 시도

-> initialValue null로 초기화 해서 값이 할당되기 전에 접근했을 때 발생하는 오류 방지 

- 컴포넌트가 렌더링 되기 전에 ref가 선언되므로, 차후 발생하는 렌더링 에러 방지

- null로 셋팅하여 나중에 값이 할당될 예정임을 나타냄

 

 

 
 

 

 

 

'React' 카테고리의 다른 글

240622 리액트 스터디 : useMemo  (0) 2024.06.22
Deep Dive : UseMemo, UseCallback  (0) 2024.06.22
Deep Dive : React hooks  (0) 2024.06.15
240601 리액트 스터디 : 리액트 파이버  (0) 2024.06.12
Formik -> React-Hook-Form 리팩토링  (0) 2024.06.10

+ Recent posts