Reservation 컴포넌트는 호텔 예약을 위한 폼을 구성하며, 두 개의 입력 필드를 처리한다.
function Reservation(props) {
const [haveBreakfast, setHaveBreakfast] = useState(true);
const [numberOfGuest, setNumberOfGuest] = useState(2);
const handleSubmit = (event) => {
alert(`아침식사 여부: ${haveBreakfast}, 방문객 수 :${numberOfGuest}`);
event.prevenDefault();
}
return (
<form onSubmit={handleSubmit}>
<label>
아침식사 여부:
<input
type="checkbox"
checked={haveBreakfast}
onChange=((event) => {
setHaveBreakfast(event.target.checked);
}} />
</label>
<br />
<label>
방문객 수:
<input
type="number"
value={numberOfGuest}
onChange=((event) => {
setNumberOfGuest(event.target.value);
}} />
</label>
<button type="submit">제출</button>
</form>
);
}
<input
type="checkbox"
checked={haveBreakfast}
onChange={(event) => setHaveBreakfast(event.target.checked)}
/>
<input
type="number"
value={numberOfGuest}
onChange={(event) => setNumberOfGuest(event.target.value)}
/>
const handleSubmit = (event) => {
alert(`아침식사 여부: ${haveBreakfast}, 방문객 수: ${numberOfGuest}`);
event.preventDefault();
};
value prop을 가진 입력 컴포넌트에서 null 값을 활용해 사용자가 자유롭게 입력할 수 있도록 처리하는 예제이다.
const root = ReactDOM.createRoot(rootNode);
root.render(<input value="h1" />);
setTimeout(function() {
root.render(<input value={null} />);
}, 1000);
root.render(<input value="h1" />);
setTimeout(function () {
root.render(<input value={null} />);
}, 1000);
JavaScript와 React에서 이벤트의 기본 동작을 방지하는 데 사용되는 메서드이다.
HTML 요소에 따라 브라우저는 특정 이벤트에 대해 기본적으로 실행되는 동작이 있다.
<form>): 기본적으로 폼이 제출되면 페이지가 리로드 된다.<a href="#"): 클릭하면 지정된 URL로 이동하거나, #일 경우 페이지 맨 위로 이동한다.이러한 기본 동작을 방지하고, 개발자가 원하는 대로 동작을 제어하기 위해 사용한다.