์ค๋์ ๋ฆฌ์กํธ๋ฅผ ์์ํ๋ค.
๋ฆฌ์กํธ๋ฅผ ์์ํ๊ธฐ์ ์์ script src
๋ฅผ ์ํฌํธ ์์ผ์ผ ํ๋ค. ์ํฌํธ ๋ฐฉ๋ฒ์ ์๋์ ๊ฐ๋ค.
<script src="https://unpkg.com/react@18/umd/react.production.min.js"></script>
<script src="https://unpkg.com/react-dom@18/umd/react-dom.production.min.js"></script>
React๋?
React๋ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌ์ถํ๊ธฐ ์ํ ์ ์ธ์ ์ด๊ณ ํจ์จ์ ์ด๋ฉฐ ์ ์ฐํ Javascript ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. "์ปดํฌ๋ํธ"๋ผ๊ณ ๋ถ๋ฆฌ๋ ์๊ณ ๊ณ ๋ฆฝ๋ ์ฝ๋์ ํํธ์ ์ด์ฉํ์ฌ ๋ณต์กํ UI๋ฅผ ๊ตฌ์ฑํ๋๋ก ๋๋๋ค.
์๋ฅผ ๋ค์ด javascipt๋ก ์์ฑํ ์ฝ๋๋ฅผ React๋ก ๋ฐ๊ฟ ์์ฑํด๋ณด๊ฒ ๋ค.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<span>Total Click : 0</span>
<button id="btn">Click ME</button>
<script>
let counter =0;
const button = document.getElementById("btn");
const span = document.querySelector("span");
function handleClick(){
counter += 1;
span.innerText = `Total Click : ${counter}`;
}
button.addEventListener("click", handleClick);
</script>
</body>
</html>
๋ฒํผ์ ํด๋ฆญํ ๋ ๋ง๋ค ์ซ์๊ฐ ์ฆ๊ฐํ๋ ํ๋ก๊ทธ๋จ์ ๊ตฌํํ๋ค. ์ด ๊ฒ์ React๋ก ๋ฐ๊พธ๋ฉด ๋ ๊ฐ๋จํ๊ฒ ์์ฑ์ด ๊ฐ๋ฅํ๊ณ ๊ตณ์ด HTML
์ ํ๊ทธ๋ฅผ ์์ฑํ์ง ์์๋ ๋๋ค.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id="root"></div>
<script src="https://unpkg.com/react@18/umd/react.production.min.js"></script>
<script src="https://unpkg.com/react-dom@18/umd/react-dom.production.min.js"></script>
<script>
const root = document.getElementById("root");
const h3 = React.createElement("h3", {
id : "title",
onMouseEnter:() => console.log("mouseenter")
},
"Hello i'm a span"
);
const btn = React.createElement("button",{
onClick:() => console.log("im click"),
style : {backgroundColor : "tomato"}
},
"Click Me");
const container = React.createElement("div", null, [h3, btn])
ReactDOM.render(container, root);
</script>
</body>
</html>
React.createElement("ํ๊ทธ", {id,class์์ฑ, addEventListener, style}, "์ถ๋ ฅํ ๋ฌธ์ฅ, ๋ฐฐ์ด")
ํ์ค๋ก ๊ฐ๋ฅํ๋ค.
๊ทธ๋ฆฌ๊ณ ReactDOM.render(container, root);
์ผ๋ก ์ถ๋ ฅํ๊ณ ์ถ์ ๊ฒ์ render ํ๋ค.
์ด๋ฐ ๋ฐฉ๋ฒ์ ๊ฐ๋ฐ์๋ค์ ์ ์ฐ์ง์์ง๋ง ๊ธฐ์ด๋ฅผ ์๊ธฐ ์ํด ์์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์์ฑํ๋ค.