๋ฆฌ์กํธ ์ ์ ์ปจํธ๋กค ๋ง๋ค๊ธฐ
๋ฆฌ์กํธ์์๋ Component ๋ผ๊ณ ์ง์นญํ์ง๋ง ์ ์ ์ปจํธ๋กค ์ด๋ผ ๋ถ๋ฅด๋ ๊ฒ์ด ์ ๋ ๋ ์ข์ผ๋๊น, ์ด๋ป๊ฒ ๋ถ๋ฅด๋ ์๊ด์์ ๊ฒ ๊ฐ์ต๋๋ค.
๊ธฐ๋ณธ ์ฌ์ฉ ๋ฐฉ๋ฒ๋ถํฐ ์์ํ๊ธฐ์๋ ์ธ๋ด์ฌ์ด ๋ถ์กฑํฉ๋๋ค.
์๋๋ ํฅ๋ฏธ๋ฅผ ๋๊ธฐ ์ํด ์ค๋นํ ์ฝ๋์
๋๋ค.
๋ฆฌ์กํธ๊ฐ ์น์ ์ผ๋ง๋ ์ฌ๋ฏธ์๊ฒ ํ๊ณ ์๋์ง ๋ณผ๊น์??
Title ์ ์ ์ปจํธ๋กค ๋ง๋ค๊ธฐ
ํ๋ก์ ํธ/src/usercontrols/Title.js
import React from "react";
export default function Title() {
return (
<div>
Dotnet DEV
</div>
);
}
์ฐธ์กฐ ๋ถ๋ถ์ ๋ง์น Python์ ์ฐ์์ผ๋ ํ๋๊ตฐ์.
from selenium import webdriver
๊ทธ๋ฆฌ๊ณ ๊ฐ์๊ธฐ ๊ถ๊ธํด์ dJango๋ React์ ๋น์ทํ ์ง ํ์ธํด ๋ดค๋๋ฐ ์ ๋น์ทํด ๋ณด์
๋๋ค.
๋ค์ ๋์์์ ์ ๊ฐ ๋ง๋ Title ์ ์ ์ปจํธ๋กค์ ์คํํด๋ณด๊ฒ ์ต๋๋ค.
ํ๋ก์ ํธ/src/App.js
import React from "react"
import Title from "./Title"
export default function App() {
return (
<div>
<Title/>
</div>
);
}
๋ฌผ๋ก ๋์์ ํ๊ธฐ ์ํด ํ์ํ ๋ง์ ๋ถ๋ถ๋ค์ ์๊ทผ์ฌ์ฉ ์๋ตํ์ง๋ง,
ํต์ฌ์ script ์ฝ๋์ html์ด ๊ฒฐํฉ๋ ๊ตฌ์กฐ๋ผ๋ ๊ฒ์ ๋ํ๋ด๊ธฐ ์ํ ๋ชฉ์ ์
๋๋ค.
๋ฆฌ์กํธ ๋ณธ์ธ๋ ์ค์ค๋ก ์ฌ๋ฏธ์๋ค๊ณ ์๊ฐํ๋ ๊ฒ ๊ฐ๋ค์.
This funny tag syntax is neither a string nor HTML.
์ด ์ฌ๋ฏธ์๋ ํ๊ทธ ๊ตฌ๋ฌธ์ ๋ฌธ์์ด๋ HTML๋ ์๋๋๋ค. - ๋ฆฌ์กํธ
๊ณ์ํด์ ์ฝ๋๋ฅผ ์ดํด๋ณด๋ฉด,
์ด๋ฐ ๊ฒ๋ ๊ฐ๋ฅํฉ๋๋ค.
import React from "react"
import Title from "./Title"
var element = <h1>hello Dotnet DEV</h1>
export default function App() {
return (
<div>
<Title/>
{element}
</div>
);
}
element ๋ณ์๋ฅผ ์ ๋ณด๋ฉด ์ผ๋ฐ string์ด ์๋๋ผ <h1/>
๊ทธ ์์ฒด์
๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ ์ ๊ธฐํ ๊ฒ์,
element๋ฅผ Title์ ๋ณด๋ผ ์๋ ์์ต๋๋ค.
<Title ele={element}/>
๊ทธ๋ผ,
Title์์๋ ๊ฐ์ ์ด๋ป๊ฒ ๋ฐ์๊น์?
export default function Title(prop) {
return (
<div>
Dotnet DEV
{prop.ele}
</div>
);
}
์๊ฐ์ฒ๋ผ ์ ์ฐํ๊ฒ ์ ๋์ด๊ฐ๋๋ค.
๋ณธ๋ฌธ์์ ์ธ๊ธ ๋๋ฆฐ ๊ฒ์ฒ๋ผ ๋ง์ ๋ถ๋ถ๋ค์ ์๋ตํ ์ค๋ช
์ธ ์ ์ดํดํด์ฃผ์๊ธฐ ๋ฐ๋๋๋ค.
๊ฐ์ฌํฉ๋๋ค.
๋์ผ๋ก JSX ์ค๋ช
๋ ํ๋ฒ ์ฝ์ด๋ณด์๊ธฐ ๋ฐ๋๋๋ค.
์ JSX์ธ๊ฐ?
React๋ ๋ ๋๋ง ๋ก์ง์ด ๋ณธ์ง์ ์ผ๋ก ๋ค๋ฅธ UI ๋ก์ง๊ณผ ๊ฒฐํฉ๋์ด ์๋ค๋ ์ฌ์ค์ ๋ฐ์๋ค์
๋๋ค. ์ด๋ฒคํธ ์ฒ๋ฆฌ ๋ฐฉ์, ์๊ฐ ๊ฒฝ๊ณผ์ ๋ฐ๋ฅธ ์ํ ๋ณ๊ฒฝ ๋ฐฉ์, ๋ฐ์ดํฐ ํ์ ์ค๋น ๋ฐฉ์ ๋ฑ์
๋๋ค.
๋งํฌ์
๊ณผ ๋ก์ง์ ๋ณ๋์ ํ์ผ์ ๋ฃ์ด ์ธ์์ ์ผ๋ก ๊ธฐ์ ์ ๋ถ๋ฆฌํ๋ ๋์ React ๋ ๋ ๊ฐ์ง๋ฅผ ๋ชจ๋ ํฌํจํ๋ "๊ตฌ์ฑ ์์"๋ผ๊ณ ํ๋ ๋์จํ๊ฒ ๊ฒฐํฉ๋ ๋จ์๋ก ์ฐ๋ ค ๋ฅผ ๋ถ๋ฆฌ ํฉ๋๋ค. ๋ค์ ์น์
์์ ๊ตฌ์ฑ ์์์ ๋ํด ๋ค์ ๋ค๋ฃจ ๊ฒ ์ง๋ง, ์์ง JS์ ๋งํฌ์
์ ๋ฃ๋ ๊ฒ์ด ์ต์ํ์ง ์๋ค๋ฉด ์ด ๊ฐ์ฐ ์ ํตํด ๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก ์ค๋ํ ์ ์์ ๊ฒ์
๋๋ค.
React ๋ JSX๋ฅผ ์ฌ์ฉํ ํ์๊ฐ ์์ง๋ง ๋๋ถ๋ถ์ ์ฌ๋๋ค์ JavaScript ์ฝ๋ ๋ด์์ UI๋ก ์์
ํ ๋ ์๊ฐ์ ๋ณด์กฐ ์๋จ์ผ๋ก ๋์์ด ๋๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ํ React๊ฐ ๋ ์ ์ฉํ ์ค๋ฅ ๋ฐ ๊ฒฝ๊ณ ๋ฉ์์ง๋ฅผ ํ์ํ ์ ์์ต๋๋ค.
JSX ์ค๋ช
์๋ฌธ ๋ณด๊ธฐ