
⇒ 코드
<!DOCTYPE html>
<html>
<body>
<span>Total clicks: 0</span>
<button id="btn">Click me</button>
</body>
<script>
let counter = 0;
const button = document.getElementById("btn");
const span = document.querySelector("span");
function handleClick() {
counter = counter + 1;
span.innerText = `Total clicks: ${counter}`;
}
button.addEventListener("click", handleClick);
</script>
</html>
⇒ 결과

⇒ 사전 준비 URL
⇒ 코드
<!DOCTYPE html>
<html>
<body></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>
</script>
</html>
⇒ 결과

⇒ 코드
<!DOCTYPE html>
<html>
<body>
<div id="root"></div>
</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>
const root = document.getElementById("root");
const span = React.createElement(
"span",
{ id: "sexy-span", style: {color:"red"}},
"Hello I'm a span"
);
ReactDOM.render(span, root);
</script>
</html>
⇒ 결과

⇒ 코드
<!DOCTYPE html>
<html>
<body>
<div id="root"></div>
</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>
const root = document.getElementById("root");
const h3 = React.createElement(
"h3",
{
id: "title",
onMouseEnter : () => console.log("mouse enter")
},
"Hello I'm a h3");
const btn = React.createElement(
"button",
{
onClick: () => console.log("i'm clicked"),
style: {
backgroundColor: "tomato"
}
},
"Click me");
// span과 btn을 한 DIV에 넣어주기 위해서는 아래와 같이 해야 함
const container = React.createElement("div", null, [h3, btn]);
ReactDOM.render(container, root);
</script>
</html>
⇒ 결과

⇒ 코드
<!DOCTYPE html>
<html>
<body>
<div id="root"></div>
</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> <!-- babel js -->
<script type="text/babel">
const root = document.getElementById("root");
const Title = (
<h3 id="title" onMouseEnter = {() => console.log("mouse enter")}>
Hello I'm a title
</h3>
);
const Button = (
<button
style={{backgroundColor: "tomato"}}
onClick={ () => console.log("i'm clicked")}
>
Click me
</button>
);
// span과 btn을 한 DIV에 넣어주기 위해서는 아래와 같이 해야 함
const container = React.createElement("div", null, [Title, Button]);
ReactDOM.render(container, root);
</script>
</html>

⇒ 코드
<!DOCTYPE html>
<html>
<body>
<div id="root"></div>
</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> <!-- babel js -->
<script type="text/babel">
const root = document.getElementById("root");
/* 반드시 대문자로 작성할 것! --> 소문자 작성시 태그 명칭과 헷갈릴 수 있음 */
function Title () { // arrow 함수를 안 쓴 함수 : return이 필요
return (
<h3 id="title" onMouseEnter = {() => console.log("mouse enter")}>
Hello I'm a title
</h3>
);
}
const Button = () => ( // arrow 함수 사용
<button
style={{backgroundColor: "tomato"}}
onClick={ () => console.log("i'm clicked")}
>
Click me
</button>
);
const Container = () => (
<div><Title /> <Button /></div>
);
ReactDOM.render(<Container />, root);
</script>
</html>
⇒ 결과

vanill JS 공부 당시, 이거를 통해서도 개발을 하는 것이 재밌기는 했지만 특정 이벤트가 필요할 때마다 id 지정을 하고, 또 해당 id를 찾아야 하는 등의 작업이 번거롭기는 했다.
공부여서 그렇지, 만약 실무에서 vanilla JS로 웹이나 앱을 구축해야 된다면, 엄청 많은 컴포넌트를 위한 변수명이 존재할 것이라는 생각을 했다.
하지만 이번 강의를 듣고 나서 생각했을 때, vanill JS와와 react로 프로그래밍한 것에 대한 결과가 일치했을 때, react로 한 것이 엄청 효율적인 생산성을 보일 것 같다는 생각이 든다.