Notice
Recent Posts
Recent Comments
Link
COCO World
[React/리액트] Input의 공백 입력값 onChange를 이용해 제거하기 본문
- 코드 구조
const Page = () => {
const onChanged = useCallback((e) => {
e.target.value = e.target.value.trim()
const value = e.target.value;
onChange(e);
},[onChange]);
return (
<div>
<input
id={id}
name={name}
value={value}
onChange={onChanged}
/>
</div>
)
}
- onChange의 역할
: 입력 상태가 실시간으로 업데이트되어 최신 상태를 유지하며, 사용자에게 실시간 피드백을 제공
단점: 상태 업데이트가 발생할 때마다 컴포넌트가 재렌더링되어 성능에 영향을 줄 수 있다.
따라서, onChange 메서드 값의 변경이 있을 때에만 onChanged의 함수가 실행될 수 있도록 useCallback을 통해 onChange를 의존성 배열에 넣어두었고, input의 입력되는 값을 의미하는 e.target.value에 앞뒤 공백을 제거하는 메서드를 입혀 반환하도록 하였다. 또한 e에 대한 구조를 살펴보면 활용하기에 유용할 것 같다.
- e의 구조
- e.target의 구조
구조를 알아본다면 코드를 이렇게도 적을 수 있을 것 같다.
const onChanged = useCallback((e) => {
e.target.value = e.target.value.trim();
//onChange(e);
onChange({...e, value: e.target.value});
console.log('e', e.target);
}, [onChange]);
'Front-End > React' 카테고리의 다른 글
[리액트/React] 리액트에 SCSS(Sass) 설치 및 적용 방법 :: LiveSassCompiler익스텐션을 활용 (0) | 2024.02.01 |
---|---|
[리액트/React] 리액트에서 className 동적으로 사용하여 클릭한 div에만 CSS 적용하기 (0) | 2023.11.06 |
[React/리액트] Redux Saga에 대해 알아보자. (0) | 2023.08.04 |
[React/리액트] 새프로젝트와 기존 프로젝트에 타입스크립트(typescript) 적용하는 방법 (0) | 2023.06.16 |
[React/리액트] Redux의 개념과 특징, 그리고 사용 목적 (0) | 2023.06.13 |