본문 바로가기
React

[React] State2

by ddanss 2022. 11. 9.
728x90
<!DOCTYPE html>
<html lang="en">
<body>
    <script src="https://unpkg.com/react@18/umd/react.development.js" crossorigin></script>
    <script src="https://unpkg.com/react-dom@18/umd/react-dom.development.js" crossorigin></script>
    <script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
    <script type="text/babel">
   
    const root = document.getElementById("root");

    function App() {
        const [amount, setAmount] = React.useState(0);
        const [inverted, setInverted] = React.useState(false); //어떤걸 활성화시킬지
        const onChange = (event) => {
            setAmount(event.target.value);
            //target = 방금 바뀐 Input
        };
        const reset = () => setAmount(0); //0으로 리셋
        const onInvert = () => { //리셋시키고 Inverted바꾸기
            reset();
            setInverted((current) => !current);
        };
         return (
            <div>
                <div>
                <h1>Super Converter</h1>
                    <label htmlFor="minutes">Minutes</label>
                    <input 
                    value={inverted ? amount*60 : amount} //event가 발생했을때 값을 업데이트해주고, UI에 표시해주는것
                    id="minutes"
                    placeholder="Minutes"
                    type="number"
                    onChange={onChange} //event를 실행해주는 것 하나
                    disabled={inverted} //비활성화 해주는것
                    />
                </div>
                <div>
                     <label htmlFor="hours">Hours</label>
                     <input
                         value={inverted ? amount : amount/60}
                         id="hours"
                         placeholder="Hours"
                         type="number" 
                         onChange={onChange}
                         disabled={!inverted}
                         />
                </div>
                <button onClick={reset}>Reset</button>
                <button onClick={onInvert}>{inverted ? "inverted_true" : "inverted_false"}</button> //누를때마다 달라짐
            </div>
        );
    };
    ReactDOM.render(<App />, root)

    </script>
    <div id="root">
    </div>
</body>
</html>
반응형

'React' 카테고리의 다른 글

[React] create react 설치 후  (0) 2022.11.09
[React] props  (0) 2022.11.09
[React] state3 - 분/시간, 킬로미터/마일  (0) 2022.11.09
[React] State1  (1) 2022.11.09
[React] Event, JSX  (1) 2022.11.08

댓글