Java & Python
[React] - 폼 처리
토끼퉁
2023. 9. 12. 19:20
폼 처리 : 폼 요소의 상태를 관리하고 사용자 입력에 따라 반응하는 방법
일반적으로 onChange 이벤트 핸들러를 통해 사용자의 입력을 상태에 연결한다.
onSubmit 이벤트 핸들러를 통해 폼 제출 시 실행할 작업을 정의한다.
일반적으로 폼 처리는 이벤트 핸들러랑 상태로 한다.
1) 클래스형 컴포넌트에서의 폼 처리
class NameForm extends Component {
constructor(props) {
super(props);
this.state = {value : ''};
this.handleChange = this.handleChange.bind(this);
this.handleSubmit = this.handleSubmit.bind(this);
}
handleChange(event) {
this.setState({value: event.target.value});
; event.target.value 는 이벤트가 발생한 요소(target)인 입력 필드의 값(value)
}
handleSubmit(event) {
alert('A name submit: ' + this.state.value);
event.preventDefault();
; 기본 동작을 취소하는 역할
; 폼을 제출하면 기본적으로 페이지가 다시 로드 or 새로고침
}
render() {
return(
<form onSubmit={this.handleSubmit}>
<label>Name:
<input type = "text" value={this.state.value} onChange={this.handleChange} />
</label>
<input type = "submit" value="submit" />
</form>
);
}
}
2) 함수형 컴포넌트에서의 폼 처리 : Hooks
useState Hook, onChange, onSubmit
import React, {useState} from 'react';
function NameForm() {
const [value, setValue] = useState('');
const handleChange = (event) => setValue(event.target.value);
const handleSubmit = (event) => {
alert('A name submit: ' + value);
event.preventDefault();
}
return (
<form onSubmit={handleSubmit}>
<lable>Name:
<input type="text" value={value} onChange={handleChange} />
</label>
<input type="submit" value="submit" />
</form>
);
}
자바스크립트 모듈 시스템에서 export와 import는 모듈 간에 기능을 공유하기 위해 사용되는 키워드다.
- export : 현재 모듈에서 정의된 함수, 객체, 값 등을 다른 자바스크립트 파일에서 사용할 수 있도록 공개합니다.
- import : 다른 자바스크립트 파일에서 export된 기능을 가져오기 위해 사용한다.
- export default : 모듈당 하나만 가능한 기본 내보내기, default로 내보낸 값은 {} 없이 import 할 수 있다.
- 아이템 추가 : 아이템을 추가하기 위해서는 기존 배열을 변경하는 것이 아니라, 새로운 배열을 생성하고 이를 State로 관리해야한다.
const [iemt, setItems] = useState(['Apple', 'Banana', 'Kiwi']);
const addItem = () => {
const newItem = prompt('Enter a new item: ');
if(newItem) {
setItems([...items, newItem]);
}
};
const removeItem = (index) => {
const updateItem = items.filter((_, i) => i !== index);
setItems(updateItem);
};