JS Library/React
useRef 로 특정 DOM 선택하기
원2
2022. 5. 13. 18:18
728x90
반응형
JavaScript 에서 특정 DOM 을 선택할 때에는
getElementById, querySelector 같은 DOM Selector 함수를 사용했지만
리액트에서는 ref 를 사용한다
아래 코드는
바로 직전게시글의 내용에서 추가하여 특정 DOM 을 선택 후, 포커싱을 input 으로 잡아보자.
걍 포커싱 잡는 코드임
InputSample.jsx
import React, { useState } from "react";
import { useRef } from "react";
function InputSamle() {
const [inputs, setInputs] = useState({
id: "",
nickname: ""
});
// useRef 선언
const nameInput = useRef();
// 비구조화 할당을 통해 값 추출
const { id, nickname } = inputs;
const displayText = (e) => {
// e.target에서 value 와 name 를 추출
const { value, name } = e.target;
setInputs({
// 기존의 input 객체를 복사(불변성을 위해서)
...inputs,
// name 키를 가진 value를 새로운 value 로 변경
[name]: value
});
};
const onRset = () => {
setInputs({
id: "",
nickname: ""
});
// onRset이 id, nickname 값을 "" 로 변경한 후 아래 코드 실행
nameInput.current.focus();
};
return (
<div>
// ref={} 를 설정해두어서 포커싱이 id 라인으로 간다
<input name="id" onChange={displayText} value={id} placeholder="아이디" ref={nameInput}></input>
<input name="nickname" onChange={displayText} value={nickname} placeholder="닉네임"></input>
<button onClick={onRset}>reset</button>
<div>
<b>값 : {id}({nickname})</b>
</div>
</div>
);
}
export default InputSamle;
결과
728x90
반응형