Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 이벤트
- try.. catch
- 렌더링
- 이벤트핸들링
- 비동기함수
- Props
- 함수 실행
- FrontendStydy
- HTML
- Frontend Study
- input
- 컴포넌트
- JavaScript
- 자바스크립트
- webProject
- frontendstudy
- addEventListener
- useRef
- DOM
- typeScript
- REACT
- 리액트
- 배열메소드
- 배열
- CSS
- callback함수
- promise
- 메소드 실행
- this 객체
- useState
Archives
- Today
- Total
이다닷
[React] Day 13 - useRef로 특정 DOM 만들기 본문
📌useRef란?
리액트를 사용하는 프로젝트에서도 가끔 직접 DOM을 선택해야하는 상황이 발생 할 때가 있다. 그리고 video.js, JWPlayer 같은 HTML5 Video 관련 라이브러, 또는 chart.js 같은 그래프 관련 라이브러 등의 외부 라이브러리를 사용해야 할 때에도 특정 DOM에 적용하기 DOM을 선택해 하는 상황이 발생할 수도 있다.
=> 그럴때 Ref라는 것을 사용한다!
초기 파일은 저번 시간에 완성한 MultiInput.js를 사용한다.
➡️우리가 저번 시간에 만들었던 내용은 초기화 버튼을 누르고나면 포커스가 초기화 버튼에 그대로 남아있게 된다. 우리는 Ref를 이용해서 초기화 버튼을 클릭했을 때 이름 input에 포커스가 잡히게 하겠다.
UseRef.js
import React, { useState, useRef } from 'react';
function UseRef() {
const [inputs, setInputs] = useState({
name: '',
nickname: ''
});
const nameInput = useRef();
const { name, nickname } = inputs;
const onChange = (e) => {
const { value, name } = e.target;
setInputs({
...inputs,
[name]: value
});
};
const onReset = (e) => {
setInputs({
name: '',
nickname: ''
})
nameInput.current.focus();
};
return (
<div>
<input name="name" placeholder='이름' onChange={onChange} value={name} ref={nameInput}></input>
<input name="nickname" placeholder='닉네임' onChange={onChange} value={nickname}></input>
<button onClick={onReset}>초기화</button>
<div>
<b>값: </b>
{name}({nickname})
</div>
</div>
);
}
export default UseRef;
결과사진
=> 이렇게 초기화 버튼을 누르면 이름 input에 커서가 남게된다.
'React' 카테고리의 다른 글
[React] Day 15 - useRef로 컴포넌트 안의 변수를 만들어 배열에 항목 추가하기 (0) | 2023.09.19 |
---|---|
[React] Day 14 - 배열 렌더링하기 (0) | 2023.09.18 |
[React] Day 12 - 여러개의 input 상태 관리하기 (0) | 2023.09.13 |
[React] Day 11 - input 상태 관리하기 (0) | 2023.09.12 |
[React] Day 10 - useState (0) | 2023.09.11 |