유명한 담벼락

React : ref와 useRef

by 담담이담

 DOM 노드를 참조할 때 useRef 함수로 Ref 객체를 만들고

이것의 current 라는 프로퍼티를 활용한다.

 

Ref 객체 생성

import { useRef } from 'react';

// ...

const ref = useRef();

useRef 함수로 Ref 객체를 만들 수 있다.

 

ref Prop 사용하기

const ref = useRef();

// ...

<div ref={ref}> ... </div>

ref Prop에다가 앞에서 만든 Ref 객체를 내려주면 된다.

 

Ref 객체에서 DOM 노드 참조하기

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) return;

    const { width, height } = imgNode;
    console.log(`${width} x ${height}`);
  };

  return (
    <div>
      <img src={src} ref={imgRef} alt="크기를 구할 이미지" />
      <button onClick={handleSizeClick}>크기 구하기</button>
    </div>
  );
}

 

'React' 카테고리의 다른 글

React : 데이터 로딩 및 에러 처리하기  (1) 2023.10.24
React : 사이드 이펙트와 useEffect  (0) 2023.10.24
React : 입력 폼  (0) 2023.10.24
React : 디자인 적용 방법  (1) 2023.10.24
React : State  (1) 2023.10.17

블로그의 정보

유명한 담벼락

담담이담

활동하기