인프런에 제로초님의 강의를 보고 정리한 내용입니다.
[ 웹 게임을 만들며 배우는 React ]
https://www.inflearn.com/course/web-game-react
이번 강의에서부터 state가 무엇인지를 파악하는걸 중요하게 다루셨다.
구구단에서 바뀌는 , 바뀔수있는 여지가 있는 부분은 4가지
랜덤으로 바뀌는 숫자부분(2) , 인풋에 담기는 값, 결과 값
해당부분은 component로 만들어둔 GuGuDan class의 생성자의 상태로 지정해준다.
class GuGuDan extends React.Component {
constructor(props){
super(props);
this.state = {
// 바뀌는 것들을 속성으로 추가해주기
first:Math.ceil(Math.random() * 9),
second:Math.ceil(Math.random() * 9),
value: '',
result: '',
}
}
...
그런다음 태그를 그려주는 render에 아래와같이 입력해준다.
render() {
return ( // 소괄호는 취향차이(?)
// state 바꿀때 어떻게 했는지? = setState!!
<div>
<div>{this.state.first} 곱하기 {this.state.second}는?</div>
<form>
<input type="number" value={this.state.value}
onChange={(e) => this.setState({value : e.target.value})}/>
// input.onchange = (e) => { console.log(e.target.value)}
// 얘를 이용하면 현재 뭘 입력하고 있는지 확인할 수 있음
<button>입력</button>
</form>
<div>{this.state.result}</div>
</div>
);
}
<input type="number" value={this.state.value} />
처음에 위처럼 입력하면 인풋안에 입력이 되지 않는다.
onChange={(e) => this.setState({value : e.target.value})}/
위 부분을 추가하면 입력이 가능하다. state를 바꿔주기위해 setState를 사용해서 바꿔주는 것.
input.onchange = (e) => { console.log(e.target.value)}
'개발 > react' 카테고리의 다른 글
[React] 1-9 함수형 setState + Fragment (0) | 2022.02.19 |
---|---|
[React] 1-7 (클래스 메서드 )구구단 리액트로 만들기(2) (0) | 2022.02.18 |
[React] 1-4 JSX와 바벨(babel) (0) | 2022.02.16 |
[React] 1-3 HTML 속성과 상태(state) (0) | 2022.02.15 |
[React ] 1-2. 첫 리액트 컴포넌트 (1) | 2022.02.14 |