프론트 엔드/React

[React] useRef 란?

Koras02 2022. 2. 7. 09:35

이번시간에는 React에 상태를 제어하는 useState를 이어서 useRef라는 것을 배워보도록 하겠습니다.

useRef란?

useRef는 특정 DOM을 가리킬 때 사용하는 Hook함수 입니다. 

useRef를 사용하는 예로는 대상에 대한 포커스 설정, 특정 엘리먼트의 크기나 색상을 변경할 때 사용합니다.

 

ref

ref 자체의 뜻을 설명하자면 

ref는 Javascript의 getElementById() 처럼 컴포넌트의 어떤 부분을 선택할 수 있게 

해주는 방법입니다.  

 

DOM에 접근 할 수 있도록 하는 기능을 가진 hook이라고 보면 됩니다. 

리액트에 있는 모든 컴포넌트는 reference element(래퍼런스 엘리먼트)를 가지고 있어서

어떤 컴포넌트에 ref={변수명}을 넣어준다면, 리액트에서 해당 컴포넌트를 참조하게 됩니다.

useRef 사용방법

import React, {useRef} from 'react';
  • 먼저 React에서 제공해주는 hook이기 때문에 
    컴포넌트 최상단에 react와 같이 import를 해줍니다.
  • 컴포넌트 내 상단에 useRef()를 선언
const here = useRef();
  • DOM에 접근 할 태그 및 컴포넌트에 ref를 선언
 <input ref={here} placeholder="how are you" />

3초 뒤에 input창에 포커싱 되는 코드를 작성해 보았습니다.

import React, { useRef } from "react";

const App = () => {
  // 1. Ref객체 만들기
  const here = useRef();
  2. focus( ) DOM API 호출
  setTimeout(() => here.current.focus(), 3000);
  return (
    <div>
      <h1>Hello</h1>
      // 2. 원하는 곳에 ref 값으로 설정하기
      <input ref={here} placeholder="how are you" />
    </div>
  );
};

export default App;
  • useRef() 를 사용해 Ref 객체 만들기
  • 해당 객체를 활용한 작업 설정 .current.focus()
  • 만든 Ref객체를 선택하고 싶은 DOM에 ref 값으로 설정 
    -> Ref객체의 .current값은 선택한 DOM을 가리키게 됩니다.
  • useRef()에 파라미터를 넣어주면, 이 값이 .current의 기본값이 됩니다.

참고 자료

 

React - useRef()

useRef란 React에서 제공하는 hook 중에 하나이며DOM에 접근 할 수 있도록 하는 기능을 가진 hook이라고 보면 된다.React에서 제공을 해주는 hook이기 때문에컴포넌트 최상단에 react와 같이 import를 합니다

velog.io

 

[리액트] useRef, useEffect

리액트에 내장된 Hook에 대해 더 알아보자.특정 DOM을 가리킬 때 사용하는 Hook 함수.Ex. 포커스 설정, 특정 엘리먼트의 크기/색상 변경 등..: ref는 JS의 getElementById()처럼, component의 어떤 부분을 선택

velog.io