📌useRef가 필요한 상황을 예시를 들어 설명해 주세요.
- useRef란?
- React 공식 문서에 따르면,
- .current프로퍼티로 전달된 인자(initialValue)로 초기화된 변경 가능한 ref객체를 반환합니다.
반환된 객체는 컴포넌트의 전 생애주기를 통해 유지될 것입니다.
본질적으로 useRef는 .current프로퍼티에 변경 가능한 값을 담고 있는 상자와 같습니다.
- .current프로퍼티로 전달된 인자(initialValue)로 초기화된 변경 가능한 ref객체를 반환합니다.
- 저장공간 또는 DOM요소에 접근하기 위해 사용되는 React Hook
- Ref는 reference, 즉 참조를 뜻함
- useRef는 리렌더링 하지 않는다. 컴포넌트의 속성만 조회&수정한다.
- React 공식 문서에 따르면,
- 사용예시
- 컴포넌트에 focus를 위치시킬 필요가 있는 경우
- 특정 DOM에 접근해 focus를 주고 싶을 때 쓸 수 있다.
- const 변수명 = useRef()로 Ref 객체를 만든 후 선택하고 싶은 DOM에 ref={변수명}으로 ref값을 설정.
- 속성 값을 초기화(clear)할 필요가 있는 경우
- 카운터의 값을 0으로 초기화할 필요가 있을 때
- setInterval이나 setTimeout과 같은 함수는 clear 시켜주지 않으면 메모리를 많이 소모하기 때문.
- 변수 관리
- 리렌더링 하지 않으면서 컴포넌트의 속성 정보를 조회&수정할 때
- useRef로 관리되는 변수가 주로 쓰이는 곳
- setTimeout, setInterval을 통해 만들어진 id
- scroll의 위치
- 배열에 새 항목이 추가될 때 필요한 고유 key 값
- 외부 라이브러리를 사용하여 생성된 인스턴스
- 컴포넌트에 focus를 위치시킬 필요가 있는 경우
💡참고
📌Cookie의 MaxAge, Expires 옵션이 무엇인지, 설정하지 않으면 어떻게 되는지 설명해 주세요.
- MaxAge 옵션은 쿠키를 얼마나 유지할 것인지,
Expires 옵션은 언제 폐기할 것인지 지정하는 옵션 - MaxAge나 Expires 옵션을 설정하지 않으면 브라우저를 닫을 때 쿠키도 함께 삭제되며, 이런 쿠키를 세션쿠키라고 함
- 둘 다 설정하면 MaxAge가 우선 적용됨.
- MaxAge
- Expires의 대안으로 쿠키의 만료기간을 설정할 수 있음
- 현재 설정하고자 하는 만료일시까지의 시간을 밀리세컨드로 환산한 값을 설정.
- 0이나 음수로 설정하면 쿠키는 바로 삭제됨
- Expires
- 브라우저는 설정된 유효일자까지 쿠키를 유지하다가 해당 일자가 되면 쿠키를 자동으로 삭제.
- Expires 옵션을 과거로 지정하면 쿠키는 삭제됨
- 쿠키의 유효일자는 반드시 GMT 포맷으로 설정.
💡참고