React/ReactBasic(ZeroCho)

끝말잇기 Class 만들기

느리지만 꾸준하게 2021. 9. 8. 20:42

lecture폴더에 있는 WordRelay.jsx를 아래와 같이 틀을 잡아주고 시작한다.

const React = require('react');
const { Component } = React;

class WordRelay extends Component {
    state = {
        word: '제로초',
        value: '',
        result: '',
    };

    render() {
        return (
        <>
            <div>{this.state.word}</div>
        </>
        );
    }
}

module.exports = WordRelay;

 

// wordrelay.jsx

const React = require('react');
const { Component } = React;

class WordRelay extends Component {
    state = {
        word: '짜장면',
        value: '',
        result: '',
    };

    onSubmitForm = (e) => {
        e.preventDefault();
        if (this.state.word[this.state.word.length - 1] === this.state.value[0]) {
            this.setState({
                result: '딩동댕',
                word: this.state.value,
                value: '',
            });
            this.input.focus();
        } else {
            this.setState({
                result: '땡',
                value: '',
            });
            this.input.focus();
        }
    };

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

    input;

    onRefInput = (c) => {
        this.input = c;
    };

    render() {
        return (
        <>
            <div>{this.state.word}</div>
            <form onSubmit={this.onSubmitForm}>
                <input ref={this.onRefInput} value={this.state.value} onChange={this.onChangeInput}/>
                <button>입력!</button>
            </form>
            <div>{this.state.result}</div>
        </>
        );
    }
}

module.exports = WordRelay;

 

실행을 해주면 나오긴 하지만 react에서 form을 다룰 때 나오는 에러가 뜨는데 input 속성에 value를 넣을거면 onChange를 같이넣거나 onChange가 없으면 defaultvalue를 넣어라고 한다. 

(오타: onChange를 onChangeInput으로 바꿔주자.)

 

하지만 이 과정은 바꿀때 마다 build를 해줘야 하기 때문에 귀찮다.(바뀔 때마다 npm run dev를 계속해서 해줘야 한다.)

자동으로 렌더링을 해줄려면 어떻게 해줘야 할지 생각해보자.

 

 

 

 

 

 

<출처 조현영: 웹 게임을 만들며 배우는 React>

https://www.inflearn.com/course/web-game-react/dashboard

 

[무료] 웹 게임을 만들며 배우는 React - 인프런 | 강의

웹게임을 통해 리액트를 배워봅니다. Class, Hooks를 모두 익히며, Context API와 React Router, 웹팩, 바벨까지 추가로 배웁니다., 8개의 간단한 웹게임을 만들어보며 배우는 리액트 강좌입니다.React Hooks에

www.inflearn.com

 

'React > ReactBasic(ZeroCho)' 카테고리의 다른 글

끝말잇기 Hooks로 전환하기  (0) 2021.09.09
웹펙 데브서버와 핫 리로딩  (0) 2021.09.08
@babel/preset-env와 plugins  (0) 2021.09.08
예제코드 웹펙으로 빌드(구구단)  (0) 2021.09.08
웹펙으로 빌드하기  (0) 2021.09.08