공부자료 : https://www.inflearn.com/course/web-game-react
https://ko.reactjs.org/docs/add-react-to-a-website.html
<div id="root></div>
<div>
태그에 유일한 HTML 속성인 id를 부여<script src="https://unpkg.com/react@17/umd/react.development.js" crossorigin></script>
<script src="https://unpkg.com/react-dom@17/umd/react-dom.development.js" crossorigin></script>
개발 연습할 땐 development.js
실제 배포할 땐 production.min.js
class LikeButton extends React.Component{
//컴포넌트가 처음에 실행될 때 제일 먼저 실행됨.
constructor(props) {
super(props);
}
//like버튼 안에 렌더가 좋아요 버튼을 어떻게 표현할 것인지
render(){
return e('button', null, 'Like');
//<button>Like</button> 버튼을 만들겠다.
}
}
ReactDOM.render(e(LikeButton), document.querySelector('#root'));
render(){
return e('button',null, 'Like');
}
렌더 부분에서 버튼의 속성을 바꿔줌
{onClick:() => { console.log('clicked')}, type:'submit' }
웹팩 안 쓰니까 비효율적인 코드들.
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
type="text/babel"
해줌💬
ReactDOM.render(<div><LikeButton />
<LikeButton />
<LikeButton /></div>, document.querySelector('#root'));
📝
버튼을 한번씩 눌렀을 때의 결과임
<div>
에 삽입<div>{this.state.first}곱하기{this.state.second}는?</div>
this.setState({value: e.target.value});
이처럼 value값으로 변화시켜줌숙제: result: this.state.first * this.state.second + ' 정답'
setState안에 this.state가 들어가면 함수로(return) 정의하면 됨.
<input ref={(c) => {this.input = c; }}...
this.input.focus();
this.state= {
first: Math.ceil(Math.random() * 9),
second: Math.ceil(Math.random() * 9),
value: '',
result: '',
count: 0,
};
onSubmit=(e) => {
e.preventDefault();
if (parseInt(this.state.value) ===
this.state.first * this.state.second)
{
this.setState((prevState) => {
return{
result:(prevState.count + 1) +'번 만에 정답 : '+ prevState.first * prevState.second,
first: Math.ceil(Math.random() * 9),
second: Math.ceil(Math.random() * 9),
value: '',
};
});
this.input.focus();
} else {
this.setState((prevState) => {
return{
result:'땡',
value: '',
count: prevState.count + 1,
};
});
this.input.focus();
}
};