일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- ignore padding
- 문제해결
- 부모요소의 패딩 무시
- ㅡ
- 함수형프로그래밍
- createPortal
- react
- es6
- transition
- tailwindCSS
- 제어컴포넌트
- parent padding
- vite
- useQueryClient
- 서초구보건소 #무료CPR교육
- 리액트
- accordian
- debouncing
- alias설정
- 부모패딩
- BlockFormattingContext
- 조건부스타일
- DOM
- ?? #null병합연산자
- 화살표2개
- BFC
- QueryClient
- twoarrow
- CustomHook
- Carousel
Archives
- Today
- Total
프론트엔드 첫걸음
Form 제출 시 input값 가져오는 두가지 방법 본문
Form 제출 시 input값 가져오는 두가지 방법이 있다.
State에서 가져오는 것과 ref에서 읽은 값 두가지이다.
const nameInputRef = useRef();
const [enteredName, setEnteredName] = useState('');
const nameInputChangeHandler = event => {
setEnteredName(event.target.value);
}
const formSubmissionHandler = event => {
event.preventDefault();
const enteredValue = nameInputRef.current.value;
//1. useRef 사용하여 값 가져오기
console.log(enteredValue);
//nameInputRef.current.value=''; //DOM을 직접 조작하지 않도록 한다.
//2. State에서 값 가져오기
console.log(enteredName);
setEnteredName('')
}
return (
<form onSubmit={formSubmissionHandler}>
<input type="text" id="name" ref={nameInputRef} onChange={nameInputChangeHandler}
value={enteredName}/>
</form>
)
input값이 폼으로 제출될 때 한번만 필요하다면
모든 키 입력마다 상태를 업데이트 하는 것은 불필요하므로 Ref가 나을 것이다.
반면 즉각적인 유효성 검증을 위해 키 입력마다 입력값이 필요하다면 state를 사용해야한다
또한 값을 초기화 할때도 state를 조작해야한다.
ref를 통해 값을 조작하는 것은 DOM을 직접 조작하는 것이기 때문에 권장하지 않는다.
'개발 공부 > React' 카테고리의 다른 글
Redux (0) | 2022.08.23 |
---|---|
Styled Component 심화 1 - Component Selector (0) | 2022.08.18 |
함수형 컴포넌트를 클래스 컴포넌트로 바꾸기 2 - useEffect를 componentDidUpdate로 (0) | 2022.08.05 |
클래스 컴포넌트 Lifecycle (0) | 2022.08.05 |
함수형 컴포넌트 class 컴포넌트로 바꾸기 (0) | 2022.08.04 |