<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
<div id="root"></div>
</body>
<script src="<https://unpkg.com/[email protected]/umd/react.production.min.js>"></script>
<script src="<https://unpkg.com/[email protected]/umd/react-dom.production.min.js>"></script>
<script src="<https://unpkg.com/@babel/standalone/babel.min.js>"></script>
<script type="text/babel">
const root = document.getElementById("root");
let counter=0;
function countUp() {
}
function App() {
const [counter,setCounter] = React.useState(0); //undefeined=data와 함수 하나=data바꿀 때 쓰는 함수
//인덱스와 같은 기능
//새로운 값을 가지고 컴포넌트 자체가 재생성
//state가 바뀌면 리렌더링 일어남
const onClick=() => {
//setCounter(counter+1);
setCounter((current)=> current+1); //현재 state바탕으로 다음 state 세팅 시
};
return (
<div>
<h3> Total clicks: {counter}</h3>
<button> Click me</button>
</div>
);
}
ReactDOM.req(<App />,root);
</script>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
<div id="root"></div>
</body>
<script src="<https://unpkg.com/[email protected]/umd/react.production.min.js>"></script>
<script src="<https://unpkg.com/[email protected]/umd/react-dom.production.min.js>"></script>
<script src="<https://unpkg.com/@babel/standalone/babel.min.js>"></script>
<script type="text/babel">
function MinutesToHours() {
const [amount,setAmount] =React.useState(0)
const [inverted,setInverted]=React.useState(false);
const onChange = (event) => { //event=이벤트 객체
setAmount(event.target.value);
} //입력 필드의 값이 변경될 때
const reset =() => setAmount(0);
const onInvert =() =>{
reset();
setInverted(current => !current)};
return (
<div>
<div>
<label htmlFor="minutes">Minutes</label>
<input
value={inverted ? amount*60 :amount}
id="minutes"
placeholder="Minutes"
type="number"
onChange={onChange}
disabled={inverted ===true}
/>
</div>
<div>
<label htmlFor="hours">Hours</label>
<input
value={inverted ? amount : Math.round(amount/60)}
id="hours"
placeholder="Hours"
type="number"
disabled={inverted ===false}
onChange={onChange}
/>
</div>
<button onClick={reset}>Reset</button>
<button onClick={onInvert}>{inverted ? "Turn back" : "Invert"}</button>
</div>
);
}
function KmToMiles() {
return(
<h3> KM 2 M </h3>
)
}
function App() {
const [index,setIndex]=React.useState("xx");
const onSelect=(event) =>{
setIndex(event.target.value);
}
return(
<div>
<h1> Super converter</h1>
<select value={index} onChange={onSelect}>
<option value="xx"> Select your units</option>
<option value="0"> Minutes & Hours </option>
<option value="1"> Km & Miles </option>
</select>
<hr />
{index==="xx" ? "Please select your units" : null}
{index==="0" ? <MinutesToHours /> : null}
{index==="1" ? <KmToMiles /> : null}
</div>
)
}
const root = document.getElementById("root");
ReactDOM.render(<App />,root);
</script>
</html>