본문 바로가기

리액트 기기기초

#3.8 Recap

  • state를 바탕으로 ui를 변경 
<!DOCTYPE html>
<html>

<body>
    <div id="root"></div>
    <!-- ReactDom이 react element를 가져다 놓을 곳 -->
</body>
<script src="https://unpkg.com/react@17.0.2/umd/react.production.min.js"></script>
<script src="https://unpkg.com/react-dom@17.0.2/umd/react-dom.production.min.js"></script>
<script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
<script type="text/babel">

    function App() {
        const [amount, setAmount] = React.useState(0);
        const [inverted, setInverted] = React.useState(false); //flip은 boolean타입의 변수
        const onChange = (event) => {
            setAmount(event.target.value);
        };
        const reset = () => setAmount(0); //minutes의 값을 0으로 초기화
        const onInvert = () => { 
            reset(); //flip누르면 변화된 값 그대로 가져오므로
            setInverted((current) => !current);
        };
        return (
            <div>
                <h1>Super Converter</h1>
                <label for="minutes">Minutes</label>
                <input
                    value={inverted ? amount * 60 : amount} //value값을 state와 연결, 외부에서도 값을 변경해주기 위해
                    onChange={onChange} //데이터를 업데이트
                    id="minutes"
                    placeholder="Minutes"//label의 for과 id가 같으면 연결됨 
                    type="number"
                    disabled={inverted} //disabled={flipped===true}
                />
                <div>
                </div>
                <label for="hours">Hours</label>
                <input id="hours"
                    value={inverted ? amount : Math.round(amount / 60)}
                    placeholder="Hours"
                    type="number"
                    disabled={!inverted}
                    onChange={onChange}
                />
                <div>
                    <button onClick={reset}>Reset</button>
                    <button onClick={onInvert}>{inverted ? "Turn back" : "Invert"}</button>
                </div>
            </div>
        ); //변수를 컴포넌트에 연결
    }
    const root = document.getElementById("root");
    ReactDOM.render(<App />, root);

</script>

</html>

'리액트 기기기초' 카테고리의 다른 글

#4.0 Props  (0) 2023.03.08
#3.9 Final Practice and Recap  (0) 2023.03.07
#3.7 State Practice part Two  (0) 2023.03.05
#3.6 State Practice part One  (0) 2023.03.05
#3.5 Inputs and State  (0) 2023.03.04