きどうはんのう


<head>
        <script crossorigin src="https://unpkg.com/react@16/umd/react.development.js"></script>
        <script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
        <script src = "https://unpkg.com/babel-standalone@6/babel.min.js"></script>
</head>
どちらのコードもRECTとRECTを使ってDOMを処理するためです.
次は反応をもっときれいにするために「babel」と言います.
<script type = "text/babel">
            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 : '' 
                    }
                }
                onSubmit = (e)=>{
                    e.preventDefault()
                    if(parseInt(this.state.value) === this.state.first * this.state.second){
                        this.setState({
                            result : `${this.state.first} x ${this.state.second} = ${this.state.value} 정답!`,
                            first: Math.ceil(Math.random()*9),
                            second : Math.ceil(Math.random()*9),
                            value : ''
                        })
                    } else {
                        this.setState({
                            result : '땡!!',
                            value : ''
                        })
                    }
                }

                onChange = (e)=>{this.setState({value: e.target.value})}

                render(){
                    return (
                        <React.Fragment>
                            <div>{this.state.first}곱하기 {this.state.second}?</div>    
                            <form onSubmit = {this.onSubmit}>
                                <input type = "number" value = {this.state.value} onChange = {this.onChange}/>
                                <button>입력!</button> 
                            </form>
                            <div>{this.state.result}</div>                    
                        </React.Fragment>
                        
                    )
                }                

            }

        </script>
<script type = 'text/babel'>
	ReactDOM.render(<Gugudan />, document.querySelector('#root'));
</script>
コードを表示します.
class形式を用いることで再利用性が向上することが分かる.