
만들었던 회원가입 폼에 중복 코드가 많다.
→ 객체 형태로 변경하고자 한다.


Register 컴포넌트(리팩토링)
import { useState } from "react";
// 간단한 회원가입 폼
// 이름, 생년월일, 국적, 자기소개
const Register = () => {
const [input, setInput] = useState({
name: "",
birth: "",
country: "",
bio: "",
});
const onChange = (e) => {
console.log(e.target.name, e.target.value);
setInput({
...input,
[e.target.name]: e.target.value,
});
};
return (
<div>
<div>
<input
name="name"
value={input.name}
onChange={onChange}
placeholder={"이름"}
/>
</div>
<div>
<input
name="birth"
value={input.birth}
onChange={onChange}
type="date"
/>
</div>
<div>
<select name="country" value={input.country} onChange={onChange}>
<option value=""></option>
<option value="kr">한국</option>
<option value="uk">영국</option>
<option value="us">미국</option>
</select>
</div>
<div>
<textarea name="bio" value={input.bio} onChange={onChange} />
</div>
</div>
);
};
export default Register;

→ 비슷한 State 및 이벤트 핸들러들을 통합하여 코드를 간결하고 깔끔하게 처리할 수 있다.