[React] Ref로 DOM 다루기 :: useRef
글 작성자: 망고좋아
반응형
🎯 useRef
- JS에는 document.get~/query~를 사용해서 DOM 다룬다.
- React에서는
useRef()
hook 함수를 사용한다.- 특정 DOM을 가리킬 때 사용하는 Hook 함수.
- 리액트에서 document api를 이용해서 DOM을 다루면 비효율이 나올 수 있다.
📝 화면 뜨자마자 input에 포커스 주기
const rootElement = document.getElementById('root');
const App = () => {
const inputRef = React.useRef();
const divRef = React.useRef();
React.useEffect(() => {
inputRef.current.focus();
setTimeout(() => {
divRef.current.style.backgroundColor = "pink";
}, 1000);
}, []);
return (
<>
<input ref={inputRef} />
<div
ref={divRef}
style= {{ height: 100, width: 300, backgroundColor: "brown" }}>
</div>
</>
);
};
ReactDOM.render(<App />, rootElement);
사용법
- Ref 객체 만들기
const inputRef = React.useRef();
- 접근하고 싶은 태그에 ref 속성을 준다.
<input ref={inputRef} />
- DOM 다루기
inputRef.current.focus();
- current는 우리가 선택하고자 하는 DOM을 가리킨다.
🏷 요약
- Vanilla JS -> document.get~/document.query로 접근
- React -> useRef/ref로 접근
📌 참고
반응형
'프로그래밍 > React' 카테고리의 다른 글
[React / Error] 리액트 Module not found: Error: Can't resolve 'react' in 에러 해결 방법 (0) | 2021.10.23 |
---|---|
[React] 리액트 ToDoList 만들기 :: 컴포넌트 만들기 (1) | 2021.10.08 |
[React] Hook Flow 이해하기 2 :: App - Child, Clean-up (0) | 2021.09.14 |
[React] Hook Flow 이해하기 1 :: App - Child (0) | 2021.09.14 |
[React] 커스텀 훅 만들기 :: use{Name} (0) | 2021.09.14 |
댓글
이 글 공유하기
다른 글
-
[React / Error] 리액트 Module not found: Error: Can't resolve 'react' in 에러 해결 방법
[React / Error] 리액트 Module not found: Error: Can't resolve 'react' in 에러 해결 방법
2021.10.23 -
[React] 리액트 ToDoList 만들기 :: 컴포넌트 만들기
[React] 리액트 ToDoList 만들기 :: 컴포넌트 만들기
2021.10.08 -
[React] Hook Flow 이해하기 2 :: App - Child, Clean-up
[React] Hook Flow 이해하기 2 :: App - Child, Clean-up
2021.09.14 -
[React] Hook Flow 이해하기 1 :: App - Child
[React] Hook Flow 이해하기 1 :: App - Child
2021.09.14