<!-- //바뀌는 데이터 : state -->
<!DOCTYPE html>
<html>
<head>
<!-- <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title> -->
</head>
<body>
<div id="root"></div>
<!-- <span>Total clicks: 0</span>
<button id="btn">Click me</button> -->
</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(){
counter = counter +1;
render();
}
function render(){
ReactDOM.render(<Container />, root);
}
const Container = () =>(
<div>
<h3>Total clicks: {counter}</h3>
<button onClick={countup}>Click me</button>
</div>
);
render();
</script>
</html>
<!-- //reactdom 부터 실행 - <div>가 reactelement
//그러나 여기 코드에서 컨테이너를 rerendering안해줌 -->
reactjs는 다른부분만 파악
따라서 totlaclicks 다시 생성할필요없어 좋
그러나 render해주는 것을 잊으면 안되기 때문에 좋은방식은 아님
function App() {
const [counter, setCounter] = React.useState(0);
const onClick=()=>{
//setCounter(counter +1); setCounter(5);
setCounter((current) => current +1);
};
return (
<div>
<h3>Total clicks: {counter}</h3>
<button onClick={countup}>Click me</button>
</div>
);
}
현재 state 바탕으로 다음 state계산하고 싶다면-함수 사용
state 세팅 -1 직접값 설정
-2 함수 전달
3.5
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>박현빈웹스터디갱</title>
</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 App(){
const [minutes, steMinutes]= React.useState() //jsx react
const onChange =() => {
console.log("somebody wrote")
};
return (
<div>
<h1>super converter</h1>
<label>Minutes</label>
<input
value={minutes}
id="minutes"
placeholder="Minutes"
type="number"
onChange={onChange}
/>
<input id="hours" placeholder="Hours" type="number" />
</div>
);
}
const root = document.getElementById("root");
ReactDOM.render(<App />, root);
</script>
</html>
//데이터 업데잍 - setState 함수 사용
3.7
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>박현빈웹스터디갱</title>
</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 App(){
const [minutes, steMinutes]= React.useState() //jsx react
const [flipped, setFlipped] = React.useState(false)
const onChange =() => {
setMinutes(event.target.value);
};
const reset = () => setMinutes(0);
const onFlip = () => setFlipped(!flipped);
return (
<div>
<label htmlFor="minutes">Minutes</label>
<input
value={minutes}
id="minutes"
placeholder="Minutes"
type="number"
onChange={onChange}
/>
<input id="hours" placeholder="Hours" type="number" />
<button onClick={reset}>Reset</button>
<button onClick={onFlip}>Reset</button>
</div>
);
}
const root = document.getElementById("root");
ReactDOM.render(<App />, root);
</script>
</html>