일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- CORS
- array
- es6
- 프리온보딩
- 비트 연산자
- v9
- 컴포넌트
- localstorage
- JS
- 파이어베이스
- axios
- Component
- 알고리즘
- 자바스크립트
- Frontend
- 원티드
- JavaScript
- state
- 프론트엔드
- til
- react localStorage
- 브라우저
- Reducer
- TypeScript
- react
- Redux
- 리액트
- 타입스크립트
- 프로그래머스
- firebase
Archives
- Today
- Total
도리쓰에러쓰
[React] Ref 사용하여 DOM 요소에 접근하기 - useRef() 본문
1. Ref란?
React에서 DOM에 직접 접근하기 위해 사용한다.
HTML로 예를 들자면, <div id="div-id">에 접근하고 싶을 때 "div-id"라는 id를 사용하여 DOM 요소에 접근한다.
HTML을 작성할 때 id로 DOM 요소를 접근하는 것처럼, React에서도 DOM 요소에 직접 접근하기 위해 사용하는 것이 Ref이다.
2. Ref 사용하기
아래 예제는 "활성화" 버튼을 클릭하면 비활성화(disabled) 되어 있던 input이 활성화되고,
"초기화"버튼을 클릭하면 원래의 상태로 input을 비활성화 되는 <input> Element를 제어하는 코드이다.
import { useRef } from "react";
const Field = () => {
const inputRef = useRef(null);
const focusHandler = () => {
inputRef.current.disabled = false;
inputRef.current.focus();
};
const resetHandler = () => {
inputRef.current.disabled = true;
inputRef.current.value = "";
};
return(
<>
<input type="text" ref={inputRef} disabled />
<button onClick={focusHandler}>활성화</button>
<button onClick={resetHandler}>초기화</button>
</>
);
};
1️⃣ useRef()라는 Hook을 사용하기 위해 import하기
import { useRef } from "react";
2️⃣ useRef() Hook을 사용하여 inputRef 객체 생성하기
const inputRef = useRef(null);
3️⃣ <input> Element에 prop을 통해 ref 값 넘기기
<input type="text" ref={inputRef} disabled />
📌 inputRef 객체의 current 속성에 <input> Element의 레퍼런스(ref)가 저장된다.
4️⃣ inputRef 객체를 통해 <input> Element 제어하기
const focusHandler = () => {
inputRef.current.disabled = false;
inputRef.current.focus();
};
const resetHandler = () => {
inputRef.current.disabled = true;
inputRef.current.value = "";
};
'React > React' 카테고리의 다른 글
[React] 라이프사이클(Lifecycle)에 대해 (0) | 2022.07.13 |
---|---|
[React] useCallback()과 useMemo() 사용하기 (0) | 2022.05.01 |
[React] ref를 prop으로 넘기기 - forwardRef() (0) | 2022.04.22 |
[React] 전역 상태 관리하기 - useContext() (0) | 2022.04.21 |
[React] 제어 컴포넌트(Controlled Component)와 비제어 컴포넌트(Uncontrolled Component) (1) | 2022.04.08 |
Comments