๐ฉโ๐ป React JS - ์ด๋ณด์๋ฅผ ์ํ ์ต๊ณ ์ ๊ฐ์ด๋! (2๋ถ๐ฅ)
27113 ๋จ์ด reactcareerbeginnersjavascript
๊ตฌ์ฑ ์์ ์ฐ๊ฒฐ
๋ฌผ๋ก ๊ตฌ์ฑ ์์ ๊ธฐ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์๋ ํ๋์ ๊ตฌ์ฑ ์์๋ง ๋ง๋๋ ๊ฒ์ด ์๋๋ผ ์ฌ๋ฌ ๊ฐ๋ฅผ ๋ง๋ญ๋๋ค. ํ๋ก์ ํธ์์๋ ํ์ด์ง์ ์ฃผ์
๋ ํ๋์ ๊ตฌ์ฑ ์์๋ง ์ ๊ณตํ์ง๋ง ๊ทธ ์์๋ ์์ญ, ์๋ฐฑ ๊ฐ์ ๋ค๋ฅธ ๊ตฌ์ฑ ์์๊ฐ ์์ต๋๋ค. ์ด๋ฅผ ์ฌ์ฉํ๋ ํ ๊ฐ์ง ๋ฐฉ๋ฒ์ ๊ตฌ์ฑ ์์๋ฅผ ์ฐ๊ฒฐํ๋ ๊ฒ์
๋๋ค. ์ฆ, ํ๋์ ๊ตฌ์ฑ ์์๊ฐ ๋ค๋ฅธ ๊ตฌ์ฑ ์์๋ฅผ ํธ์ถํ๋ ๊ฒ์
๋๋ค. , ์ด๊ฒ์ ๋ค๋ฅธ ์ฌ๋ฌ ์๋
๊ฐ โโ์์ต๋๋ค.
๊ณ์ํ๋ ค๋ฉด ํ ๊ตฌ์ฑ ์์๊ฐ ๋ค๋ฅธ ๊ตฌ์ฑ ์์๋ฅผ ํธ์ถํ๋ค๋ ๊ฒ์ ์ดํดํด์ผ ํฉ๋๋ค. ์ด์ ์์ ๋ก ์ด๋ํ๊ฒ ์ต๋๋ค. ์ง๋ ๊ธฐ์ฌ์์ ๋ง๋ index.html ํ์ผ์์ ํธ์ง๊ธฐ๋ฅผ ์ฝ๋๋ค.
function MyComponente() {
return React.createElement("div", null, "Hello world");
}
์ด๊ฒ์ด ์ฐ๋ฆฌ์ ์ฃผ์ ๊ตฌ์ฑ ์์๊ฐ ๋ ๊ฒ์
๋๋ค. ์ด์ ์ฐ๋ฆฌ๋ ๋ค ๊ฐ์ ๊ตฌ์ฑ ์์๋ฅผ ๋ ๋ง๋ค ๊ฒ์
๋๋ค. ๊ทธ ์ค ๋ค์ฏ ๋ฒ์งธ๋ ์ฒซ ๋ฒ์งธ MyComponent ํจ์์
๋๋ค.
function MyComponent1(){
}
function MyComponent2(){
}
function MyComponent3(){
}
function MyComponent4(){
}
function MyComponent() {
return React.createElement("div", null, "Hello world");
}
์ด์ ์ฐ๋ฆฌ๋ ํ ๊ตฌ์ฑ ์์๊ฐ ๋ค๋ฅธ ๊ตฌ์ฑ ์์์ ๋ถ๋ชจ๊ฐ ๋๊ธฐ๋ฅผ ์ํฉ๋๋ค.
function MyComponent1(){
return React.createElement(MyComponent2)
}
function MyComponent2(){
return React.createElement(MyComponent3)
}
function MyComponent3(){
return React.createElement(MyComponent4)
}
function MyComponent4(){
return React.createElement('p', null, 'Component 4')
}
function MyComponent() {
return React.createElement("div", null, "Hello world");
}
๊ธฐ๋ณธ์ ์ผ๋ก ๊ตฌ์ฑ ์์๊ฐ ์์์ ํธ์ถํ๊ณ , MyComponent1์ด MyComponent2๋ฅผ ํธ์ถํ๊ณ , MyComponent3๋ฅผ ํธ์ถํ๊ณ , HTML ๋จ๋ฝ('p'), ์์ฑ ์์(null), ์์ฑ๋ Component 4๋ฅผ ๋ฐํํ๋ MyComponent4๋ฅผ ํธ์ถํฉ๋๋ค.
์ด์ ์์ฑ๋ ์ฒซ ๋ฒ์งธ ๊ตฌ์ฑ ์์์ธ MyComponent๋ ๋ค์๊ณผ ๊ฐ์ด MyComponent1์ ํธ์ถํฉ๋๋ค.
function MyComponent() {
return React.createElement("div", null,
React.createElement(MyComponent1)
);
}
์ด ๊ฒฝ์ฐ ์ฐ๋ฆฌ์ ์ฃผ์ ๊ตฌ์ฑ ์์(MyComponent)๋ 1(MyComponent1)์ ๋ ๋๋งํ๋ ์์ผ๋ก ์๋ก๋ฅผ ํธ์ถํฉ๋๋ค.
๋ธ๋ผ์ฐ์ ์์ ๋ณด๊ธฐ
p์ div ์์ ์ปดํฌ๋ํธ 4๊ฐ ๋ ๋๋ง๋์์ต๋๋ค.
<div id="app">
<div>
<p>Component 4</p>
</div>
</div>
๊ทธ๋ฅ ํธ๊ธฐ์ฌ์ ๋ํผ์ ์ปจํ
์ด๋ div๋ฅผ ๋ฃ์ด๋ด
์๋ค.
๋ค์๊ณผ ๊ฐ์ด ์๊ฒผ์ต๋๋ค.
function MyComponent1() {
return React.createElement(
"div",
null,
React.createElement(MyComponent2)
);
}
function MyComponent2() {
return React.createElement(
"div",
null,
React.createElement(MyComponent3)
);
}
function MyComponent3() {
return React.createElement(
"div",
null,
React.createElement(MyComponent4)
);
}
function MyComponent4() {
return React.createElement("p", null, "Component 4");
}
function MyComponent() {
return React.createElement(
"div",
null,
React.createElement(MyComponent1)
);
}
ReactDOM.render(
React.createElement(MyComponent),
document.getElementById("app")
);
์ด์ ๋ณ๊ฒฝ๋ ์ฌํญ์ ์ฝ๋๊ฐ ๋ ํ์ํ๋๊ณ ๊ตฌ์ฑ ์์๊ฐ ํด๋น div ์์ ๋ฐฐ์น๋๋ค๋ ๊ฒ์
๋๋ค.
์ฐ๋ฆฌ๋ ์ฐ๋ฆฌ์ ์ ๋ฌผ์ธ HTML ๋ด์ div ์ฒด์ธ์ ๊ฐ๊ฒ ๋ ๊ฒ์
๋๋ค. ๋ค์๊ณผ ๊ฐ์ด ์ ์ง:
<div id="app">
<div>
<div>
<div>
<div>
<p>Component 4</p>
</div>
</div>
</div>
</div>
</div>
์ด์ ์ด๋ฌํ ๊ตฌ์ฑ ์์์ ํด๋์ค๋ฅผ ์ถ๊ฐํด ๋ณด๊ฒ ์ต๋๋ค.
ํจ์์ ๋ ๋ฒ์งธ ๋งค๊ฐ๋ณ์์ ๋ฃ์ Null์ด ์์ฑ์ ๋ฃ๋ ๋ฐ ์ฌ์ฉ๋๋ค๊ณ ๋งํ๋ฏ์ด ์๋ฅผ ๋ค์ด id๋ฅผ ๋ฃ์ ์ ์์ต๋๋ค.
function MyComponent1() {
return React.createElement(
"div",
{id: 'components'},
React.createElement(MyComponent3)
);
}
HTML:
<div id="app">
<div>
<div>
<div id="components">
<div>
<p>Component 4</p>
</div>
</div>
</div>
</div>
</div>
๋ธ๋ผ์ฐ์ ์์ ๊ฒ์ฌ์์ ์ด๊ฒ์ ์ฐธ์กฐํ์ญ์์ค.
์ด์ id ๋์ ํด๋์ค๋ฅผ ๋ฃ๊ฒ ์ต๋๋ค. ํ์ง๋ง React์์๋ ํด๋์ค๋ฅผ ๋ฃ์ง ์๊ณ HTML์์ ์ผ๋ฐ์ ์ผ๋ก className์ ๋ฃ์ต๋๋ค. ๋ค์์ ์ฐธ์กฐํ์ธ์.
function MyComponent1() {
return React.createElement(
"div",
{ className: "components" },
React.createElement(MyComponent3)
);
}
์ฌ๊ธฐ์๋ ์๊ฐ๋ก createElement๋ฅผ ์ฌ์ฉํ๋๋ฐ ๋ณดํต ๊ทธ ์ฝ๋ฉ์์๋ JSX๋ฅผ ์ฌ์ฉํ ๊ฒ์ด๊ณ ๊ทธ ์์์ class๋ผ๋ ๋จ์ด๋ ์๋ฐ์คํฌ๋ฆฝํธ ์์ฝ์ด์ด๊ธฐ ๋๋ฌธ์ ์ถฉ๋์ด ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ React๋ ์ด๋ฅผ className์ผ๋ก ๋ณ๊ฒฝํด์ผ ํ์ต๋๋ค. ๋ฐ๋ผ์ ํ๊ทธ์ ํด๋์ค๋ฅผ ํฌํจ์ํค๋ ค๋ฉด className ์ ์ฌ์ฉํ์ญ์์ค.
์๋ฃ๋ ๋ชจ๋ ์์
์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
function MyComponent1() {
return React.createElement(
"div",
{ className: "components-1" },
React.createElement(MyComponent2)
);
}
function MyComponent2() {
return React.createElement(
"div",
{ className: "components-2" },
React.createElement(MyComponent3)
);
}
function MyComponent3() {
return React.createElement(
"div",
{ className: "components-3" },
React.createElement(MyComponent4)
);
}
function MyComponent4() {
return React.createElement(
"p",
{ className: "components-4" },
"Component 4"
);
}
function MyComponent() {
return React.createElement(
"div",
{ id: "components" },
React.createElement(MyComponent1)
);
}
HTML:
<div id="app">
<div id="components">
<div class="components-1">
<div class="components-2">
<div class="components-3">
<p class="components-4">Component 4</p>
</div>
</div>
</div>
</div>
</div>
์ฌ๊ธฐ์ ์จ ๊ฒ์ ์ถํํฉ๋๋ค. ๋งค์ฐ ๊ฐ๋ ฌํ๊ฒ ์ฝ์์ต๋๋ค. ์ด๊ฒ์ด ์ต์ข
์ฝ๋์์ต๋๋ค.
<!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 MyComponent1() {
return React.createElement(
"div",
{ className: "components-1" },
React.createElement(MyComponent2)
);
}
function MyComponent2() {
return React.createElement(
"div",
{ className: "components-2" },
React.createElement(MyComponent3)
);
}
function MyComponent3() {
return React.createElement(
"div",
{ className: "components-3" },
React.createElement(MyComponent4)
);
}
function MyComponent4() {
return React.createElement(
"p",
{ className: "components-4" },
"Component 4"
);
}
function MyComponent() {
return React.createElement(
"div",
{ id: "components" },
React.createElement(MyComponent1)
);
}
ReactDOM.render(
React.createElement(MyComponent),
document.getElementById("app")
);
</script>
</body>
</html>
๊ทธ๋ฆฌ๊ณ ์ง๊ธ์ ๊ทธ๊ฒ ๋ค์
๋๋ค. ๋ค์ ๊ธฐ์ฌ๋ ๊ฐ๋ฅํ ํ ๋นจ๋ฆฌ ๋์ฌ ๊ฒ์
๋๋ค! ๊ทธ๋ฆฌ๊ณ ๊ทธ ์์์ ์ฐ๋ฆฌ๋ ์ด๋ฌํ ์ปดํฌ๋ํธ ๊ธฐ๋ฐ ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ๋ ์์ํฌ๊ฐ ๊ฐ์ง๊ณ ์๋ ์ฃผ์ ์ด๋ ค์์ธ ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ํ๋ฆ(One-way binding)์ ๋ค๋ฃฐ ๊ฒ์
๋๋ค.
๊ตฌ์ฑ ์์ ์ฒด์ธ์ด ์๋ ๊ฒฝ์ฐ ๊ตฌ์ฑ ์์ ๊ฐ์ ๊ฐ์ ์ ๋ฌํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํฉ๋๊น?
๋ค์ ๊ธฐ์ฌ์์ ์ด ์ง๋ฌธ๊ณผ ๋ค๋ฅธ ์ง๋ฌธ์ ๋ตํ ๊ฒ์
๋๋ค. ์ด ๋๋ผ์ด ๋ด์ฉ์ ๋ณด๋ ค๋ฉด ์ ๋ฅผ ๊ณ์ ํ๋ก์ฐํ๊ณ ์ฌ๊ธฐ๋ฅผ ๋ฐฉ๋ฌธํ์ธ์!
ํธ์ํฐ์์ ๋๋ฅผ ํ๋ก์ฐํ์ธ์:
Reference
์ด ๋ฌธ์ ์ ๊ดํ์ฌ(๐ฉโ๐ป React JS - ์ด๋ณด์๋ฅผ ์ํ ์ต๊ณ ์ ๊ฐ์ด๋! (2๋ถ๐ฅ)), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค
https://dev.to/juanpabllo/react-js-best-guide-for-beginners-part-2-1e2b
ํ
์คํธ๋ฅผ ์์ ๋กญ๊ฒ ๊ณต์ ํ๊ฑฐ๋ ๋ณต์ฌํ ์ ์์ต๋๋ค.ํ์ง๋ง ์ด ๋ฌธ์์ URL์ ์ฐธ์กฐ URL๋ก ๋จ๊ฒจ ๋์ญ์์ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ
์ธ ๋ฐ๊ฒฌ์ ์ ๋
(Collection and Share based on the CC Protocol.)
function MyComponente() {
return React.createElement("div", null, "Hello world");
}
function MyComponent1(){
}
function MyComponent2(){
}
function MyComponent3(){
}
function MyComponent4(){
}
function MyComponent() {
return React.createElement("div", null, "Hello world");
}
function MyComponent1(){
return React.createElement(MyComponent2)
}
function MyComponent2(){
return React.createElement(MyComponent3)
}
function MyComponent3(){
return React.createElement(MyComponent4)
}
function MyComponent4(){
return React.createElement('p', null, 'Component 4')
}
function MyComponent() {
return React.createElement("div", null, "Hello world");
}
function MyComponent() {
return React.createElement("div", null,
React.createElement(MyComponent1)
);
}
<div id="app">
<div>
<p>Component 4</p>
</div>
</div>
function MyComponent1() {
return React.createElement(
"div",
null,
React.createElement(MyComponent2)
);
}
function MyComponent2() {
return React.createElement(
"div",
null,
React.createElement(MyComponent3)
);
}
function MyComponent3() {
return React.createElement(
"div",
null,
React.createElement(MyComponent4)
);
}
function MyComponent4() {
return React.createElement("p", null, "Component 4");
}
function MyComponent() {
return React.createElement(
"div",
null,
React.createElement(MyComponent1)
);
}
ReactDOM.render(
React.createElement(MyComponent),
document.getElementById("app")
);
<div id="app">
<div>
<div>
<div>
<div>
<p>Component 4</p>
</div>
</div>
</div>
</div>
</div>
function MyComponent1() {
return React.createElement(
"div",
{id: 'components'},
React.createElement(MyComponent3)
);
}
<div id="app">
<div>
<div>
<div id="components">
<div>
<p>Component 4</p>
</div>
</div>
</div>
</div>
</div>
function MyComponent1() {
return React.createElement(
"div",
{ className: "components" },
React.createElement(MyComponent3)
);
}
function MyComponent1() {
return React.createElement(
"div",
{ className: "components-1" },
React.createElement(MyComponent2)
);
}
function MyComponent2() {
return React.createElement(
"div",
{ className: "components-2" },
React.createElement(MyComponent3)
);
}
function MyComponent3() {
return React.createElement(
"div",
{ className: "components-3" },
React.createElement(MyComponent4)
);
}
function MyComponent4() {
return React.createElement(
"p",
{ className: "components-4" },
"Component 4"
);
}
function MyComponent() {
return React.createElement(
"div",
{ id: "components" },
React.createElement(MyComponent1)
);
}
<div id="app">
<div id="components">
<div class="components-1">
<div class="components-2">
<div class="components-3">
<p class="components-4">Component 4</p>
</div>
</div>
</div>
</div>
</div>
<!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 MyComponent1() {
return React.createElement(
"div",
{ className: "components-1" },
React.createElement(MyComponent2)
);
}
function MyComponent2() {
return React.createElement(
"div",
{ className: "components-2" },
React.createElement(MyComponent3)
);
}
function MyComponent3() {
return React.createElement(
"div",
{ className: "components-3" },
React.createElement(MyComponent4)
);
}
function MyComponent4() {
return React.createElement(
"p",
{ className: "components-4" },
"Component 4"
);
}
function MyComponent() {
return React.createElement(
"div",
{ id: "components" },
React.createElement(MyComponent1)
);
}
ReactDOM.render(
React.createElement(MyComponent),
document.getElementById("app")
);
</script>
</body>
</html>
Reference
์ด ๋ฌธ์ ์ ๊ดํ์ฌ(๐ฉโ๐ป React JS - ์ด๋ณด์๋ฅผ ์ํ ์ต๊ณ ์ ๊ฐ์ด๋! (2๋ถ๐ฅ)), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค https://dev.to/juanpabllo/react-js-best-guide-for-beginners-part-2-1e2bํ ์คํธ๋ฅผ ์์ ๋กญ๊ฒ ๊ณต์ ํ๊ฑฐ๋ ๋ณต์ฌํ ์ ์์ต๋๋ค.ํ์ง๋ง ์ด ๋ฌธ์์ URL์ ์ฐธ์กฐ URL๋ก ๋จ๊ฒจ ๋์ญ์์ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ ์ธ ๋ฐ๊ฒฌ์ ์ ๋ (Collection and Share based on the CC Protocol.)
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค