๐ฉโ๐ป ๋ฐ์ JS - ์ด๋ณด์์ ๋ฒ ์คํธ ๊ฐ์ด๋!(์น์ 1)
18955 ๋จ์ด reactcareerbeginnersjavascript
์ผํค๊ธฐ ๋ฐ์ JS ์ฝ๋๋ฅผ ์ข ๋ฃํ๋ ๊ฒ์ ๋น์ ์ ๋์์ฃผ์ง ์์ต๋๋ค. ์ค์ํ ๊ฒ์ ์ด ๊ฑด์๋ฅผ ์๊ณ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ ์ํ ํด๊ฒฐ ๋ฐฉ์์ ๋ณด๋ ๊ฒ์ ๋๋ค.
์ด ์๋ฆฌ์ฆ์์๋ JSX๋ฅผ JavaScript๋ก ์ ์กํ๋ Babel JS๋ ์ค์นํ์ต๋๋ค.๋ณด์์ผ๋ก ๋น์ ์ ๋ฐ๋ฒจ์ ๋ํด ์ต์ข ์ ์ผ๋ก ์๊ฒ ๋ฉ๋๋ค.)
๊ตฌ์ฑ ์์ ๊ธฐ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ตฌ์ฑ ์์ ๊ฐ์ ์ ๋ณด๋ฅผ ์ ํํ ๋๋ ํ๊ณ๊ฐ ์๋ค. ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ์ฐ๊ฒฐ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์กฐํฉ๊ณผ ์ํ๋ฌธ API ๊ธฐ์ ๋ฑ ํด๊ฒฐ ๋ฐฉ์์ ๋ณด์๋ค.
์ฐ๋ฆฌ๋ ๋ํ ๊ตฌ์ฑ ์์์ ์ํ๋ฅผ ํ ๋ก ํ๋ค. ์ฐ๋ฆฌ๋ ๊ฐ๊ณ ๋ฆฌ ์ํ์ ์ํ๋ฅผ ํฅ์์ํค๋ ๊ธฐ์ ์ ์ฌ์ฉํ๋ค.๋ง์ง๋ง์ผ๋ก, ๋๋ ๋ ๋ค๋ฅธ ๊ฐ๊ณ ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ค. useEffect๋ ๊ตฌ์ฑ ์์์ ์๋ช ์ฃผ๊ธฐ๋ฅผ ๋ณด์ฌ ์ฃผ์๋ค.
์ด๊ฒ์ ์๋ง๋ ์ด๋ณด์์ ๊ฐ์ฅ ์ข์ ๊ฐ์ข์ผ ๊ฒ์ด๋ค. ๋๋ ๊ทธ ์ค์์ ์๊ฐํ ๊ฒ์ด๋ค.
๊ตฌ์ฑ ์์
์์ ์ ์ํ๋ฅผ ๊ด๋ฆฌํ๋ ํจํค์ง๋ ๊ตฌ์ฑ ์์๋ฅผ ๊ตฌ์ถํ๊ณ ๋ณต์กํ UI๋ก ์กฐํฉํฉ๋๋ค.
๊ตฌ์ฑ ์์ ๋
ผ๋ฆฌ๋ ํ
ํ๋ฆฟ์ด ์๋ JavaScript๋ก ์์ฑ๋๊ธฐ ๋๋ฌธ์ ์์ฉ ํ๋ก๊ทธ๋จ์ ํตํด ํ๋ถํ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ์ ๋ฌํ๊ณ ์ํ๋ฅผ DOM์์ ์ ์ธํ ์ ์์ต๋๋ค.
๊ฐ๋จํ HTML์ ๋ง๋ญ๋๋ค.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>React JS - BEST GUIDE for Beginners!</title>
</head>
<body>
</body>
</html>
๋ ์ ์ดํดํ๊ธฐ ์ํด์, ์ด ์์ธ์์ ๋ชจ๋ ์์
์ ์์ฑํ ๊ฒ์
๋๋ค.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>React JS - BEST GUIDE for Beginners!</title>
</head>
<body>
<script>
function MyComponent(){
}
</script>
</body>
</html>
MyComponent ํจ์๋ ์ด๋ฏธ React์ ๊ตฌ์ฑ ์์์ผ ์ ์์ต๋๋ค.
CDN๋ถํฐ.
์ด์ React๋ฅผ ์ฃผ์
ํด์ ๊ฒ์์ ์์ํด์ผ ํฉ๋๋ค. CDN์ ์ฌ์ฉํ์ฌ ํ
์คํธ๋ฅผ ์งํํ์ง๋ง, ๋ ํผํผํ ํ๋ก๊ทธ๋จ์ ๋ง๋ค๋ ค๋ฉด NPM์ด๋ Yarn๊ณผ ํจ๊ป ์ค์นํด์ผ ํฉ๋๋ค.
here๋ฅผ ํด๋ฆญํ์ฌ ์์ ๋งํฌ๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
์์ธhtml์ ๋ค์๊ณผ ๊ฐ์ด ํด์ผ ํ๋ค.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>React JS - BEST GUIDE for Beginners!</title>
</head>
<body>
<script crossorigin src="https://unpkg.com/react@16/umd/react.development.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
<script>
function MyComponent(){
}
</script>
</body>
</html>
CDN์ ์ฒซ ๋ฒ์งธ ๋งํฌ๋ ์ ์ฒด React, ์ ์ฒด ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ๊ฐ์ DOM, ๊ทธ๋ฆฌ๊ณ React๋ก ์ดํดํ ์ ์๋ ๋ชจ๋ ๊ฒ์
๋๋ค.
๋ ๋ฒ์งธ ๋งํฌ๋ ํ์ด์ง์ React ๊ตฌ์ฑ ์์๋ฅผ ์ฃผ์
ํ๊ฑฐ๋ ๋ฌธ์์ด์ ์์ฑํ๊ณ ๋ฐฑ์๋๋ฅผ ํตํด ๋ ๋๋งํ๋ React DOM์
๋๋ค.
์ด ๊ฒฝ์ฐ ์ฑ์ด๋ผ๋ div์ ์ฃผ์
๋ฉ๋๋ค.
<body>
<div id="app"></div>
<script crossorigin src="https://unpkg.com/react@16/umd/react.development.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
<script>
function MYComponent(){
}
</script>
</body>
์ด์ React๋ฅผ ํตํด ์์ฑ๋ ๋ชจ๋ ๊ตฌ์ฑ ์์๊ฐ ์ฃผ์
๋ฉ๋๋ค.
React DOM์ ํ์ด์ง์ ์ฃผ์
๋๋ ์ญํ ์ ํ๊ธฐ ๋๋ฌธ์ ๋ ๋ฒ์งธ CDN ๋งํฌ๋ฅผ ์ฌ์ฉํ์ฌ ReactDOM์ด๋ผ๋ ์ ์ญ ๋ณ์๋ฅผ ์์ฑํฉ๋๋ค. ์ด์ ๊ทธ ์์ Render ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
ReactDOM.render()
์ด๊ฒ์ ๋งค์ฐ ๊ฐ๋จํ๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๋ค๊ฐ ์ด๋ค ๊ตฌ์ฑ ์์๋ฅผ ์ฃผ์
ํ๊ณ ์ถ์์ง, ์ด๋์ ์ฃผ์
ํ๊ณ ์ถ์์ง ๋งํด๋ผ.
์ด ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ด ์ฃผ์
ํ MyComponent ํจ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
<script>
function MyComponent(){
}
ReactDOM.render(
MyComponent
)
</script>
๊ทธ๋ฌ๋ ์์ง ์ค๋น๊ฐ ๋์ง ์์์ต๋๋ค. MyComponent๋ ์ผ๋ฐ์ ์ธ JavaScript ํจ์์
๋๋ค. React๋ ๊ตฌ์ฑ ์์์ธ ์ค ๋ชฐ๋์ต๋๋ค. ์ฐ๋ฆฌ๊ฐcreate Element๋ผ๋ React ๋ฐฉ๋ฒ์ ์ฌ์ฉํด์ผ ํ๋ค๋ ๊ฒ์ ์์์ผ ํฉ๋๋ค.
Create Element๋ ์ธ ๊ฐ์ง ์ฃผ์ ๋งค๊ฐ ๋ณ์๋ฅผ ๋ฐ์๋ค์ธ๋ค. ์ฒซ ๋ฒ์งธ๋ ๊ตฌ์ฑ ์์์ด๊ณ , ๋ ๋ฒ์งธ๋ ๋ด๊ฐ ๊ทธ์๊ฒ ์ ๋ฌํ๊ณ ์ถ์ ์์ฑ์ด๋ค. ์ฐ๋ฆฌ๋ ๋ค์์ ํ ๋ก ํ ๊ฒ์ด๋ค. ์ธ ๋ฒ์งธ๋ ์ด ๊ตฌ์ฑ ์์์ ํ์ ์์์ด๋ค. ์ฐ๋ฆฌ๋ ์ง๊ธ ํ ๋ก ํ ์๊ฐ์ด ์๋ค.
ReactDOM.render(
React.createElement(MyComponent)
)
์ด์ ์ฐ๋ฆฌ๋ ๋ค๋ฅธ ๋งค๊ฐ ๋ณ์๋ฅผ ๋ฌด์ํ๊ณ ๊ตฌ์ฑ ์์๋ง ์ ๋ฌํ ๊ฒ์
๋๋ค.
์ด์ ์ด ๊ตฌ์ฑ ์์๊ฐ ์ด๋๋ก ์ฃผ์
๋ ์ง ๋งํ๊ณ DOM์ ์กฐ์ํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.
ReactDOM.render(
React.createElement(MyComponent),
document.getElementById("app")
);
์ฐ๋ฆฌ๋ ์ด ๋ถ๋ถ์ ์์ฑํ๋ค. ์ง๊ธ๊น์ง ์ฐ๋ฆฌ์ ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ๋ค.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>React JS - BEST GUIDE for Beginners!</title>
</head>
<body>
<div id="app"></div>
<script
crossorigin
src="https://unpkg.com/react@16/umd/react.development.js"
></script>
<script
crossorigin
src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"
></script>
<script>
function MyComponent() {
}
ReactDOM.render(
React.createElement(MyComponent),
document.getElementById("app")
);
</script>
</body>
</html>
๋ณด์๋ค์ํผ ์ ํฌ ๊ตฌ์ฑ ์์์ธ MyComponent๋ ๋น์ด ์์ต๋๋ค. ์ด ํ์๋ฅผ ๋ง๋ค๋ ค๋ฉด HTML ํ์,div,span ๋ฑ์
๋๋ค. React์์ ๋ชจ๋ ๋ด์ฉ์ ์ด ํจ์์ธ React๋ก ๋ง๋ญ๋๋ค.๊ฐ์ ๊ตฌ๋ฌธ์ ๊ฐ์ง createElement.
๊ตฌ์ฑ ์์๋ ๋ค์๊ณผ ๊ฐ์ด ์์ฑ๋ฉ๋๋ค.
function MyComponent() {
return React.createElement("div", null, "Hello world");
}
์์์ ๋งํ ๋ฐ์ ๊ฐ์ด ์ธ ๊ฐ์ ๋งค๊ฐ ๋ณ์๊ฐ ์์ต๋๋ค. ์ฒซ ๋ฒ์งธ ๋งค๊ฐ ๋ณ์์์ ์ฐ๋ฆฌ๋ ๋ฌธ์์ด์ HTML ํ์๋ฅผ ๋์์ต๋๋ค. span, h1์
๋๋ค. ์ด ์์์ ๋๋div๋ฅผ ๋์๊ณ ๋ ๋ฒ์งธ ๋งค๊ฐ ๋ณ์์์ ์์ฑ์
๋๋ค. ์๋ฅผ ๋ค์ด ํด๋์ค, id, ์คํ์ผ์ ๋์์ ๋ชจ๋ ์์ฑ์ ๋์ ์ ์์ต๋๋ค. ์ด ์์์null์ ๋์๊ณ ์ธ ๋ฒ์งธ ์ด์์ ์ด ํ์์ ํ์ ํญ๋ชฉ์
๋๋ค. ์ด ์์์ ์ด ํ์์ ํ์ ํญ๋ชฉ์ ๋ฌธ์์ด์
๋๋ค.
๋ณด์๋ค์ํผ, ๋ชจ๋ ๊ตฌ์ฑ ์์๊ฐ React ์์๊ฐ ์๋ ํจ์ ์ถ๋ ฅ์ ๋๋๋ ค์ผ ํ๊ธฐ ๋๋ฌธ์, ์ฐ๋ฆฌ๋ ์์๊น์ง ๋๋๋ ค์ค๋๋ค.
์ ์ฅํ ๋ ์ด div๊ฐ React๋ฅผ ํตํด ๋ํ๋๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
์์๋ฅผ ๊ฒ์ฌํ๋๋ฐ ์ฐ๋ฆฌ ๋ถ์๊ฐ ๊ฑฐ๊ธฐ์ ์์ต๋๊น?
h1๋ก ์ ํ
<script>
function MyComponent() {
return React.createElement("h1", null, "Hello world");
}
React์์, ๋น์ ์ ์์ํ ํ๋์ ๊ตฌ์ฑ ์์๋ง ์์ ์ ์์ต๋๋ค. ์ฌ์ค์, ๋ช ๊ฐ์ ๊ตฌ์ฑ ์์๊ฐ ๋ค๋ฅธ ๊ตฌ์ฑ ์์๋ฅผ ํธ์ถํ ๊ฒ์
๋๋ค. ํญ์ ํ๋๋ ๋ฉ์ธ ๊ตฌ์ฑ ์์์
๋๋ค. ์ด ํ์ด์ง๋ ๋ชจ๋ ๋ค๋ฅธ ๊ตฌ์ฑ ์์๋ฅผ ํธ์ถํฉ๋๋ค.
๋ชจ๋ ์ฌ๋์ ์์ด๊ฐ ์์ ๊ฒ์ด๋ค.
์ต์ข
์ฝ๋:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>React JS - BEST GUIDE for Beginners!</title>
</head>
<body>
<div id="app"></div>
<script
crossorigin
src="https://unpkg.com/react@16/umd/react.development.js"
></script>
<script
crossorigin
src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"
></script>
<script>
function MyComponent() {
return React.createElement("h1", null, "Hello world");
}
ReactDOM.render(
React.createElement(MyComponent),
document.getElementById("app")
);
</script>
</body>
</html>
๊ตฌ์ฑ ์์ ๋ถ๋ถ์ ํ์ฌ ์จ๋ผ์ธ์
๋๋ค!๋ค์ ๋งํฌ๋ฅผ ํด๋ฆญํ๋ฉด ๋ค์ ํ์ด์ง๋ฅผ ๋ณผ ์ ์์ต๋๋ค. ์ด๊ฒ์ React๊ฐ ์ ๋ฐฉ ๊ตฌ์ฑ ์์์ ๊ฐ์ฅ ์ข์ ํด๊ฒฐ ๋ฐฉ์ ์ค ํ๋๋ผ๋ ๊ฒ์ ๋ณด์ฌ ์ค๋๋ค.๊ทธ๊ฒ์ ๊ธฐ์ ์ ์ฐฝ์กฐํ ์ ์๋ค.
ํธ์ํฐ์์ ์ ์ ์ต์ ์์์ ํ๋ก์ฐํ์ธ์.
์ ์ฉ:
Reference
์ด ๋ฌธ์ ์ ๊ดํ์ฌ(๐ฉโ๐ป ๋ฐ์ JS - ์ด๋ณด์์ ๋ฒ ์คํธ ๊ฐ์ด๋!(์น์
1)), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค
https://dev.to/juanpabllo/react-js-best-guide-for-beginners-2gcn
ํ
์คํธ๋ฅผ ์์ ๋กญ๊ฒ ๊ณต์ ํ๊ฑฐ๋ ๋ณต์ฌํ ์ ์์ต๋๋ค.ํ์ง๋ง ์ด ๋ฌธ์์ URL์ ์ฐธ์กฐ URL๋ก ๋จ๊ฒจ ๋์ญ์์ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ
์ธ ๋ฐ๊ฒฌ์ ์ ๋
(Collection and Share based on the CC Protocol.)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>React JS - BEST GUIDE for Beginners!</title>
</head>
<body>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>React JS - BEST GUIDE for Beginners!</title>
</head>
<body>
<script>
function MyComponent(){
}
</script>
</body>
</html>
์ด์ React๋ฅผ ์ฃผ์ ํด์ ๊ฒ์์ ์์ํด์ผ ํฉ๋๋ค. CDN์ ์ฌ์ฉํ์ฌ ํ ์คํธ๋ฅผ ์งํํ์ง๋ง, ๋ ํผํผํ ํ๋ก๊ทธ๋จ์ ๋ง๋ค๋ ค๋ฉด NPM์ด๋ Yarn๊ณผ ํจ๊ป ์ค์นํด์ผ ํฉ๋๋ค.
here๋ฅผ ํด๋ฆญํ์ฌ ์์ ๋งํฌ๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
์์ธhtml์ ๋ค์๊ณผ ๊ฐ์ด ํด์ผ ํ๋ค.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>React JS - BEST GUIDE for Beginners!</title>
</head>
<body>
<script crossorigin src="https://unpkg.com/react@16/umd/react.development.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
<script>
function MyComponent(){
}
</script>
</body>
</html>
CDN์ ์ฒซ ๋ฒ์งธ ๋งํฌ๋ ์ ์ฒด React, ์ ์ฒด ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ๊ฐ์ DOM, ๊ทธ๋ฆฌ๊ณ React๋ก ์ดํดํ ์ ์๋ ๋ชจ๋ ๊ฒ์
๋๋ค.๋ ๋ฒ์งธ ๋งํฌ๋ ํ์ด์ง์ React ๊ตฌ์ฑ ์์๋ฅผ ์ฃผ์ ํ๊ฑฐ๋ ๋ฌธ์์ด์ ์์ฑํ๊ณ ๋ฐฑ์๋๋ฅผ ํตํด ๋ ๋๋งํ๋ React DOM์ ๋๋ค.
์ด ๊ฒฝ์ฐ ์ฑ์ด๋ผ๋ div์ ์ฃผ์ ๋ฉ๋๋ค.
<body>
<div id="app"></div>
<script crossorigin src="https://unpkg.com/react@16/umd/react.development.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
<script>
function MYComponent(){
}
</script>
</body>
์ด์ React๋ฅผ ํตํด ์์ฑ๋ ๋ชจ๋ ๊ตฌ์ฑ ์์๊ฐ ์ฃผ์
๋ฉ๋๋ค.React DOM์ ํ์ด์ง์ ์ฃผ์ ๋๋ ์ญํ ์ ํ๊ธฐ ๋๋ฌธ์ ๋ ๋ฒ์งธ CDN ๋งํฌ๋ฅผ ์ฌ์ฉํ์ฌ ReactDOM์ด๋ผ๋ ์ ์ญ ๋ณ์๋ฅผ ์์ฑํฉ๋๋ค. ์ด์ ๊ทธ ์์ Render ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
ReactDOM.render()
์ด๊ฒ์ ๋งค์ฐ ๊ฐ๋จํ๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๋ค๊ฐ ์ด๋ค ๊ตฌ์ฑ ์์๋ฅผ ์ฃผ์
ํ๊ณ ์ถ์์ง, ์ด๋์ ์ฃผ์
ํ๊ณ ์ถ์์ง ๋งํด๋ผ.์ด ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ด ์ฃผ์ ํ MyComponent ํจ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
<script>
function MyComponent(){
}
ReactDOM.render(
MyComponent
)
</script>
๊ทธ๋ฌ๋ ์์ง ์ค๋น๊ฐ ๋์ง ์์์ต๋๋ค. MyComponent๋ ์ผ๋ฐ์ ์ธ JavaScript ํจ์์
๋๋ค. React๋ ๊ตฌ์ฑ ์์์ธ ์ค ๋ชฐ๋์ต๋๋ค. ์ฐ๋ฆฌ๊ฐcreate Element๋ผ๋ React ๋ฐฉ๋ฒ์ ์ฌ์ฉํด์ผ ํ๋ค๋ ๊ฒ์ ์์์ผ ํฉ๋๋ค.Create Element๋ ์ธ ๊ฐ์ง ์ฃผ์ ๋งค๊ฐ ๋ณ์๋ฅผ ๋ฐ์๋ค์ธ๋ค. ์ฒซ ๋ฒ์งธ๋ ๊ตฌ์ฑ ์์์ด๊ณ , ๋ ๋ฒ์งธ๋ ๋ด๊ฐ ๊ทธ์๊ฒ ์ ๋ฌํ๊ณ ์ถ์ ์์ฑ์ด๋ค. ์ฐ๋ฆฌ๋ ๋ค์์ ํ ๋ก ํ ๊ฒ์ด๋ค. ์ธ ๋ฒ์งธ๋ ์ด ๊ตฌ์ฑ ์์์ ํ์ ์์์ด๋ค. ์ฐ๋ฆฌ๋ ์ง๊ธ ํ ๋ก ํ ์๊ฐ์ด ์๋ค.
ReactDOM.render(
React.createElement(MyComponent)
)
์ด์ ์ฐ๋ฆฌ๋ ๋ค๋ฅธ ๋งค๊ฐ ๋ณ์๋ฅผ ๋ฌด์ํ๊ณ ๊ตฌ์ฑ ์์๋ง ์ ๋ฌํ ๊ฒ์
๋๋ค.์ด์ ์ด ๊ตฌ์ฑ ์์๊ฐ ์ด๋๋ก ์ฃผ์ ๋ ์ง ๋งํ๊ณ DOM์ ์กฐ์ํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.
ReactDOM.render(
React.createElement(MyComponent),
document.getElementById("app")
);
์ฐ๋ฆฌ๋ ์ด ๋ถ๋ถ์ ์์ฑํ๋ค. ์ง๊ธ๊น์ง ์ฐ๋ฆฌ์ ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ๋ค.<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>React JS - BEST GUIDE for Beginners!</title>
</head>
<body>
<div id="app"></div>
<script
crossorigin
src="https://unpkg.com/react@16/umd/react.development.js"
></script>
<script
crossorigin
src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"
></script>
<script>
function MyComponent() {
}
ReactDOM.render(
React.createElement(MyComponent),
document.getElementById("app")
);
</script>
</body>
</html>
๋ณด์๋ค์ํผ ์ ํฌ ๊ตฌ์ฑ ์์์ธ MyComponent๋ ๋น์ด ์์ต๋๋ค. ์ด ํ์๋ฅผ ๋ง๋ค๋ ค๋ฉด HTML ํ์,div,span ๋ฑ์
๋๋ค. React์์ ๋ชจ๋ ๋ด์ฉ์ ์ด ํจ์์ธ React๋ก ๋ง๋ญ๋๋ค.๊ฐ์ ๊ตฌ๋ฌธ์ ๊ฐ์ง createElement.๊ตฌ์ฑ ์์๋ ๋ค์๊ณผ ๊ฐ์ด ์์ฑ๋ฉ๋๋ค.
function MyComponent() {
return React.createElement("div", null, "Hello world");
}
์์์ ๋งํ ๋ฐ์ ๊ฐ์ด ์ธ ๊ฐ์ ๋งค๊ฐ ๋ณ์๊ฐ ์์ต๋๋ค. ์ฒซ ๋ฒ์งธ ๋งค๊ฐ ๋ณ์์์ ์ฐ๋ฆฌ๋ ๋ฌธ์์ด์ HTML ํ์๋ฅผ ๋์์ต๋๋ค. span, h1์
๋๋ค. ์ด ์์์ ๋๋div๋ฅผ ๋์๊ณ ๋ ๋ฒ์งธ ๋งค๊ฐ ๋ณ์์์ ์์ฑ์
๋๋ค. ์๋ฅผ ๋ค์ด ํด๋์ค, id, ์คํ์ผ์ ๋์์ ๋ชจ๋ ์์ฑ์ ๋์ ์ ์์ต๋๋ค. ์ด ์์์null์ ๋์๊ณ ์ธ ๋ฒ์งธ ์ด์์ ์ด ํ์์ ํ์ ํญ๋ชฉ์
๋๋ค. ์ด ์์์ ์ด ํ์์ ํ์ ํญ๋ชฉ์ ๋ฌธ์์ด์
๋๋ค.๋ณด์๋ค์ํผ, ๋ชจ๋ ๊ตฌ์ฑ ์์๊ฐ React ์์๊ฐ ์๋ ํจ์ ์ถ๋ ฅ์ ๋๋๋ ค์ผ ํ๊ธฐ ๋๋ฌธ์, ์ฐ๋ฆฌ๋ ์์๊น์ง ๋๋๋ ค์ค๋๋ค.
์ ์ฅํ ๋ ์ด div๊ฐ React๋ฅผ ํตํด ๋ํ๋๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
์์๋ฅผ ๊ฒ์ฌํ๋๋ฐ ์ฐ๋ฆฌ ๋ถ์๊ฐ ๊ฑฐ๊ธฐ์ ์์ต๋๊น?
h1๋ก ์ ํ
<script>
function MyComponent() {
return React.createElement("h1", null, "Hello world");
}
React์์, ๋น์ ์ ์์ํ ํ๋์ ๊ตฌ์ฑ ์์๋ง ์์ ์ ์์ต๋๋ค. ์ฌ์ค์, ๋ช ๊ฐ์ ๊ตฌ์ฑ ์์๊ฐ ๋ค๋ฅธ ๊ตฌ์ฑ ์์๋ฅผ ํธ์ถํ ๊ฒ์ ๋๋ค. ํญ์ ํ๋๋ ๋ฉ์ธ ๊ตฌ์ฑ ์์์ ๋๋ค. ์ด ํ์ด์ง๋ ๋ชจ๋ ๋ค๋ฅธ ๊ตฌ์ฑ ์์๋ฅผ ํธ์ถํฉ๋๋ค.
๋ชจ๋ ์ฌ๋์ ์์ด๊ฐ ์์ ๊ฒ์ด๋ค.
์ต์ข ์ฝ๋:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>React JS - BEST GUIDE for Beginners!</title>
</head>
<body>
<div id="app"></div>
<script
crossorigin
src="https://unpkg.com/react@16/umd/react.development.js"
></script>
<script
crossorigin
src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"
></script>
<script>
function MyComponent() {
return React.createElement("h1", null, "Hello world");
}
ReactDOM.render(
React.createElement(MyComponent),
document.getElementById("app")
);
</script>
</body>
</html>
๊ตฌ์ฑ ์์ ๋ถ๋ถ์ ํ์ฌ ์จ๋ผ์ธ์
๋๋ค!๋ค์ ๋งํฌ๋ฅผ ํด๋ฆญํ๋ฉด ๋ค์ ํ์ด์ง๋ฅผ ๋ณผ ์ ์์ต๋๋ค. ์ด๊ฒ์ React๊ฐ ์ ๋ฐฉ ๊ตฌ์ฑ ์์์ ๊ฐ์ฅ ์ข์ ํด๊ฒฐ ๋ฐฉ์ ์ค ํ๋๋ผ๋ ๊ฒ์ ๋ณด์ฌ ์ค๋๋ค.๊ทธ๊ฒ์ ๊ธฐ์ ์ ์ฐฝ์กฐํ ์ ์๋ค.ํธ์ํฐ์์ ์ ์ ์ต์ ์์์ ํ๋ก์ฐํ์ธ์.
์ ์ฉ:
Reference
์ด ๋ฌธ์ ์ ๊ดํ์ฌ(๐ฉโ๐ป ๋ฐ์ JS - ์ด๋ณด์์ ๋ฒ ์คํธ ๊ฐ์ด๋!(์น์ 1)), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค https://dev.to/juanpabllo/react-js-best-guide-for-beginners-2gcnํ ์คํธ๋ฅผ ์์ ๋กญ๊ฒ ๊ณต์ ํ๊ฑฐ๋ ๋ณต์ฌํ ์ ์์ต๋๋ค.ํ์ง๋ง ์ด ๋ฌธ์์ URL์ ์ฐธ์กฐ URL๋ก ๋จ๊ฒจ ๋์ญ์์ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ ์ธ ๋ฐ๊ฒฌ์ ์ ๋ (Collection and Share based on the CC Protocol.)
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค