<aside> 💡 Ref에 대해서 알아보자
</aside>
import { useRef } from 'react'
const ref = useRef();
useRef 함수를 이용해서 Ref 객체를 만들 수 있다.
ref Propconst ref = useRef();
<div ref={ref}> ... </div>
ref prop에다가 앞에서 만든 Ref 객체를 내려주면 된다.
const node = ref.current;
if(node){
// node 를 활용하는 코드
}
Ref 객체의 current 라는 프로퍼티를 사용하면 DOM 노드를 참조할 수 있다.
current 값은 없을 수 있기에 반드시 값이 존재하는지 검사하고 사용해야 하는 주의점이 필요하다.
img 노드의 크기를 ref 를 활용해서 출력할 수 있다. 이에 대한 예시로
img 노드에 너비 값인 width , 높이 값인 height 라는 속성이 존재하여 Ref 객체의 current 로 DOM 노드를 참조해 속성 값을 가져올 수 있다.
import { useRef } from 'react';
function Image({ src }) {
const imgRef = useRef();
const handleSizeClick = () => {
const imgNode = imgRef.current;
if (imgNode) {
const { width, height } = imgNode;
console.log(`${width} x ${height}`);
}
};
return (
<div>
<img src={src} ref={imgRef} alt="크기를 구할 이미지" />
<button onClick={handleSizeClick}>크기 구하기</button>
</div>
);
}