이번시간에는 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' 카테고리의 다른 글
[React] React 상태관리에 대해 알아보자 -context api, redux, mobx, swr (0) | 2022.02.09 |
---|---|
[React] useEffect란 ? (0) | 2022.02.05 |
[React] State 생명주기 (클래스형과 함수형의 차이) (0) | 2022.01.28 |