: 해서 그대로 양식이라는 의미.
React에서는??
→ controlled component!! : 값이 React의 통제를 받는 input form element
사용자의 입력을 직접 제어할 수 있다!
Example
→ 사용자의 입력을 대문자로 변경하고 싶다면 handleChange 함수에서 toUpperCase 메서드를 사용해 한번에 통제(처리)할 수 있다!
: 다수의 옵션 중 하나를 선택할 수 있는 태그.
html에서는 selected를 사용해서 선택.
react에서는 value값을 가져와 사용한다. 또한 multiple을 사용해 다수의 옵션도 선택이 가능하다.
<select multiple={true} value={['B', 'C']}>
: 여러 줄에 거친 긴 문자열을 처리할 때 사용하는 태그
: read-only 속성으로 uncontrolled component이다.
Example
//form, select, input 태그 모두 사용
//사용자 정보 입력
import React from 'react';
class SignUp extends React.Component{
constructor(props){
super(props);
this.state = {
name: ' ',
gender: 1
}
}
handleChange = (event) => {
this.setState({
[event.target.name]: event.target.value
});
}
render(){
var { name, gender } = this.state;
return(
<form onSubmit = {this.handleChange}>
<label>
Name
<input
type='text'
name={'name'}
value={name}
onChange={this.handleChange}/>
</label>
<br />
<label>
Gender
<select
name={'gender'}
value={gender}
onChange={this.handleChange}>
<option value={1}>Man</option>
<option value={0}>Woman</option>
</select>
</label>
<input type='submit' value='Submit' />
</form>
)
}
}
export default SignUp;
: state에 있는 데이터를 여러 개의 하위 component에서 공통적으로 사용하는 경우. 모두 하나의 값을 사용한다!
→ 파랑은 섭씨로 온도를 표현하고 빨강은 화씨로 온도를 표현하는 component들이다. temperature와 scale을 공통으로 사용하기 때문에 Calculator component에서 공통적인 데이터를 가져다 쓴다고 이해하자!
하위 component의 state를 상위 component로 lifting 시켜준다!