React Element
React ์๋ฆฌ๋จผํธ๋ React ์ฑ์ ๊ฐ์ฅ ์์ ๋จ์๋ก, ๋ธ๋ผ์ฐ์ DOM ์๋ฆฌ๋จผํธ์ ๋ค๋ฅด๊ฒ ์ผ๋ฐ ๊ฐ์ฒด(plain object)์ด๋ฉฐ, ์ฝ๊ฒ ์์ฑ์ด ๊ฐ๋ฅํ๋ค.
React ์๋ฆฌ๋จผํธ๋ ํ๋ฉด์ ํ์ํ ๋ด์ฉ์ ๊ธฐ์ ํ๋ฉฐ, React DOM์ React ์๋ฆฌ๋จผํธ์ ์ผ์นํ๋๋ก DOM์ ์ ๋ฐ์ดํธํด์ค๋ค.
const element = <h1>Hello, world</h1>;
React ์๋ฆฌ๋จผํธ๋ ๋ถ๋ณ๊ฐ์ฒด์ด๋ฉฐ, ์๋ฆฌ๋จผํธ๋ฅผ ์์ฑํ ์ดํ์๋ ํด๋น ์๋ฆฌ๋จผํธ์ ์์์ด๋ ์์ฑ์ ๋ณ๊ฒฝํ ์ ์๋ค. ์๋ฆฌ๋จผํธ๋ ์ํ์์ ํ๋์ ํ๋ ์๊ณผ ๊ฐ์ด ํน์ ์์ ์ UI๋ฅผ ๋ณด์ฌ์ค๋ค.
์ฌ์ฉ์ ์ ์ ์ปดํฌ๋ํธ๋ก๋ React ์๋ฆฌ๋จผํธ๋ฅผ ๋ํ๋ผ ์ ์๋ค. (Welcome ์ปดํฌ๋ํธ๋ฅผ ์๋ฆฌ๋จผํธ๋ก ์ฌ์ฉ)
const element = <Welcome name="Sara" />;
React๊ฐ ์ฌ์ฉ์ ์ ์ ์ปดํฌ๋ํธ๋ก ์์ฑํ ์๋ฆฌ๋จผํธ๋ฅผ ๋ฐ๊ฒฌํ๋ฉด, JSX ์ดํธ๋ฆฌ๋ทฐํธ์ ์์์ ํด๋น ์ปดํฌ๋ํธ์ ๋จ์ผ ๊ฐ์ฒด๋ก ์ ๋ฌํ๋๋ฐ, ์ด ๊ฐ์ฒด๋ฅผ "props"๋ผ๊ณ ํ๋ค.
React Component
react ์ปดํฌ๋ํธ๋ ์๊ณ ๊ณ ๋ฆฝ๋ ์ฝ๋์ ํํธ์ผ๋ก, ์ด๋ฐ ์ปดํฌ๋ํธ๋ฅผ ์ด์ฉํ์ฌ UI๋ฅผ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ๊ฐ๋ณ์ ์ธ ์ฌ๋ฌ ์กฐ๊ฐ์ผ๋ก ๋๋๊ณ , ๊ฐ ์กฐ๊ฐ๋ค์ ๊ฐ๋ณ์ ์ผ๋ก ์ดํด๋ณผ ์ ์๋ค. ์ปดํฌ๋ํธ๋ ๊ฐ๋ ์ ์ผ๋ก๋ JavaScript์ ํจ์์ ์ ์ฌํ๋ค. "props"๋ผ๋ ์์์ ์ ๋ ฅ์ ๋ฐ์ ๋ค, ํ๋ฉด์ ์ด๋ป๊ฒ ํ์๋ ์ง ๊ธฐ์ ํ๋ React ์๋ฆฌ๋จผํธ๋ฅผ ๋ฐํํ์ฌ UI๋ฅผ ๊ตฌ์ฑํ๋ฉฐ, ํจ์ํ ์ปดํฌ๋ํธ์ ํด๋์ค ์ปดํฌ๋ํธ๊ฐ ์กด์ฌํ๋ค.
const ShoppingList = () => {
return(
<>
<div className="shopping-list">
<h1>Shopping List for {this.props.name}</h1>
<ul>
<li>Instagram</li>
<li>WhatsApp</li>
<li>Oculus</li>
</ul>
</div>
</>
)
}
export default ShoppingList;
ํจ์ ์ปดํฌ๋ํธ
JavaScript ํจ์๋ก ํจ์ํ ์ปดํฌ๋ํธ๋ฅผ ์ ์ํ ์ ์๋ค.
function Welcome(props) {
return <h1>Hello, {props.name}</h1>;
}
Welcome ํจ์๋ props(์์ฑ์ ๋ํ๋ด๋ ๋ฐ์ดํฐ) ๊ฐ์ฒด ์ธ์๋ฅผ ๋ฐ์ ํ React ์๋ฆฌ๋จผํธ๋ฅผ ๋ฐํํ๋ ํจ์ ์ปดํฌ๋ํธ์ด๋ค.
ํด๋์ค ์ปดํฌ๋ํธ
ES6์ class๋ฅผ ์ฌ์ฉํ์ฌ ์ปดํฌ๋ํธ๋ฅผ ์ ์ํ ์ ์๋ค.
class Welcome extends React.Component {
render() {
return <h1>Hello, {this.props.name}</h1>;
}
}
๐ธ ์ถ์ฒ ๐ธ
'React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ React ] React Props ์์๋ณด๊ธฐ. (0) | 2023.03.20 |
---|---|
[ webpack ] React(๋ฆฌ์กํธ)์ webpack(์นํฉ) (0) | 2023.03.05 |
[ React / Next ] Web Google Login ๊ธฐ๋ฅ ๊ตฌํ (gsi/client) (0) | 2023.01.08 |
[ React / Redux ] Redux ์ํ ๊ด๋ฆฌ ๊ฐ๋ ์ ๋ฆฌ. (0) | 2022.09.25 |
[ NEXT.JS ] Next.js์ ๋ํด ์์๋ณด๊ธฐ. (0) | 2022.09.18 |