일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- jsp
- db
- AWS
- laravel
- Web Server
- Spring Batch
- ubuntu
- java
- devops
- springboot
- Spring Boot
- elasticsearch
- javascript
- Gradle
- php
- tool
- Spring
- JVM
- it
- linux
- Git
- 맛집
- ReactJS
- 요리
- Oracle
- redis
- IntelliJ
- Design Patterns
- jenkins
- MySQL
Archives
- Today
- Total
아무거나
useRef 를 사용한 직접 DOM 제어 본문
반응형
오래전에 작성된 글을 복사해온거라 직접 테스트 해보는 것을 권장 ( 참고용 정도로만 올렸음 )
- useRef
- 리액트를 사용하면서 가끔씩 직접 DOM을 선택해줘야하는 상황이 발생할 수 있다. 예를 들어 Element의 크기를 가져온다는지, 스크롤을 제어 한다는지 등 다양한 상황에 대해 대응하기 위하여 react에서는 ref를 사용하고 Functional Component에서 ref를 사용하기 위해선 useRef라는 React Hook 함수를 사용한다.
위의 코드와 같이 useRef 함수를 통해 Ref객체를 만들고 내가 선택하고 싶은 DOM에 ref값으로 설정해준다. (위와 같이 focus를 저렇게 활용하는 이유는 React에서는 focus를 따로 설정하기가 힘드므로 이렇게 사용한다.)import React, { useState, useRef } from 'react'; function InputSample() { 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 = () => { setInputs({ name: '', nickname: '' }); nameInput.current.focus(); }; return ( <div> <input name="name" placeholder="이름" onChange={onChange} value={name} ref={nameInput} /> <input name="nickname" placeholder="닉네임" onChange={onChange} value={nickname} /> <button onClick={onReset}>초기화</button> <div> <b>값: </b> {name} ({nickname}) </div> </div> ); } export default InputSample;
반응형
'Javascript & HTML & CSS > reactjs' 카테고리의 다른 글
Scroll Down 구현 (0) | 2022.07.29 |
---|---|
Fragments (0) | 2022.07.29 |
react + typescript 체크박스 컨트롤 예제 (0) | 2020.05.11 |
Fragments 정의 (0) | 2020.05.08 |
모바일에서 Input Text 에 값을 입력 시 하단 키패드 때문에 화면 가려지는 현상 해결 (0) | 2020.05.06 |
Comments