๐งฉ ์ปดํฌ๋ํธ
์ปดํฌ๋ํธ๋ UI๋ฅผ ๊ฐ๋ณ์ ์ธ ์กฐ๊ฐ์ผ๋ก ์ชผ๊ฐ๊ณ ๊ด๋ฆฌ ๋ฐ ์ฌ์ฌ์ฉ์ฑ์ด ์ฉ์ดํ ๋ฆฌ์กํธ์ ํต์ฌ ๊ธฐ์ ์ค ํ๋์ ๋๋ค.
๐ญ Class๋ก ๋ง๋๋ ์ปดํฌ๋ํธ
์์ ์๋ ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค๋ class๋ฅผ ์ด์ฉํ์ฌ ๋ง๋ค์์ต๋๋ค.
๊ทธ๋ ๊ฒ ๋๋ฌธ์ function์ผ๋ก ๋ง๋๋ ์ปดํฌ๋ํธ์ ๋ฌ๋ฆฌ
class๋ก ๋ง๋๋ ์ปดํฌ๋ํธ๋ง์ ๋ช๊ฐ์ง ํน์ด์ ์ด ์์ต๋๋ค.
- ํญ์ React.Component๋ฅผ ์์๋ฐ์ ๋ง๋ค์ด์ง๋๋ค.
- consturctor๋ props๋ฅผ ์ ๋ฌํ ๋๋ง ์์ฑํฉ๋๋ค.
- render์ state๊ฐ์ ๋ฉ์๋๋ ๊ฐ์ฒด๊ฐ ์์๋์ด ๋ค์ด์ต๋๋ค.
class Welcome extends React.Component{
constructor(props){
super(props)
}
render (){
return <div>`Hi! ${name}`<div>
}
}
๐ฉ function์ผ๋ก ๋ง๋๋ ์ปดํฌ๋ํธ
๋ฆฌ์กํธ๊ฐ ๋ฐ์ ํด์ค๋ฉด์ ํจ์ํ ์ปดํฌ๋ํธ์ ๋ฑ์ฅ์ผ๋ก class์ ๋จ์ ๋ค์ด ๊ฐ์ ๋์์ต๋๋ค.
ํ์ฌ ๋ฆฌ์กํธ 19์์๋ ํจ์๋ก ์ปดํฌ๋ํธ๋ฅผ ๋ง๋๋๊ฒ์ ๊ถ์ฅํ๊ณ ์์ต๋๋ค.
์๋ ์ฝ๋๋ ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค ์ ์๋ ๊ธฐ๋ณธ์ ์ธ ์ฝ๋์ ๋๋ค.
function Components(props){
return(
๋ ๋๋งํ HTML
)
}
๐ค ์ปดํฌ๋ํธ ์ฌ์ฉํ๊ธฐ
์ปดํฌ๋ํธ๋ ์ผ์ข ์ UI ์กฐ๊ฐ์ด๋ผ์ ํ ํ์ด์ง์์ ๋ง์ด ๋ง๋ค์ด ๋๊ณ ์ฌ์ฉํ๋ฉด ํด๋น ํ์ผ์ ๊ฐ๋ ์ฑ์ด ์์ข์์ง๋๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๋ณดํต ํด๋๋ฅผ ๋ง๋ค์ด์ ๊ด๋ฆฌํ๊ฒ ๋๋๋ฐ์.
์๋ฐ์คํฌ๋ฆฝํธ์์ ๋ชจ๋์ฌ์ฉํ๋ฏ import export๊ตฌ๋ฌธ์ ํตํ์ฌ ๊ด๋ฆฌํ๊ฒ ๋ฉ๋๋ค.
์ด๋ return๋ฌธ ์์ชฝ์๋ ํ๋์ ๋ถ๋ชจ์์์ ํ๊ทธ๊ฐ ๋ง๋ค์ด์ ธ์ผํฉ๋๋ค.
๋ณดํต ์๋ฏธ์๋ ๋ถ๋ชจ์์๋ฅผ ๋ง๋ค์ด์ค๋ Fragment๋ผ๋ ์๋ฏธ์๋ ํ๊ทธ๋ฅผ ์ฌ์ฉํฉ๋๋ค
function Components(){
return(
<> // Fragment
<div> React <div>
</>
)
}
export default Components
์ปดํฌ๋ํธ๋ฅผ ํด๋์์ exportํ๋ค๋ฉด ํด๋น ์ปดํฌ๋ํธ๋ฅผ ์ธ ํ์ผ์์ import๋ฅผ ํด์ต๋๋ค.
์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ ๋๋ <์ปดํฌ๋ํธ ์ด๋ฆ/>์ผ๋ก ์ ํํด๋ก์งํ๊ทธ๋ฅผ ์ฌ์ฉํฉ๋๋ค
// App.js
import Components from 'Componentํ์ผ ๊ฒฝ๋ก'
.
.
function App(){
return(
<>
<Components/>
</>
)
}
๐ฃ Props
Props๋ ์์ ์ปดํฌ๋ํธ๊ฐ ํ์ ์ปดํฌ๋ํธ์๊ฒ ์ ๋ฌํด์ฃผ๋ ์ ๋ณด์ ๋๋ค.
props๋ ๋ชจ๋ ๊ฐ์ ํ์ ์ปดํฌ๋ํธ์๊ฒ ์ ๋ฌ ํ ์ ์์ต๋๋ค.
์ปดํฌ๋ํธ๋ฅผ ์ ๋ฌํ๋ ๋ฐฉ๋ฒ์ ํ์์ปดํฌ๋ํธ์ ํ๊ทธ์์ ์ ๋ฌํ ์ ๋ณด๋ฅผ ๋ฃ์ผ๋ฉด ๋ฉ๋๋ค.
<Components id={id} name={name]/>
๋ณดํต ์ปดํฌ๋ํธ๋ฅผ ์ ๋ฌํ ๋ ์ ๋ฌํ๋ ๋ด์ฉ๊ณผ ์ค๊ดํธ ์์ ๋ด์ฉ์ ์ผ์น์์ผ์ ๋ณด๋ด์ค๋๋ค.
์ ๋ฌ ๋ฐ์ ์ปดํฌ๋ํธ๋ props๋ผ๋ ์ด๋ฆ์ ํตํด์ ์ ๋ฌ๋ฐ์ต๋๋ค.
// Component
export default function Component(props){
return(
<div key={props.id}>
<h2>{props.name}</h2>
</div>
)
}
๊ทธ๋ฐ๋ฐ ์ฌ์ฉํ๊ณ ๋ณด๋ ์ต์ํ ๋ชจ์์๋ค์
Props๋ ๋ฆฌ์กํธ๊ฐ ์ปดํฌ๋ํธ๋ฅผ ํธ์ถํ ๋ ๋๊ฒจ์ฃผ๋ ๊ฐ์ฒด์ ๋๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ props๊ฐ ๋ง์์ ์ผ์ผํ props.name๊ฐ์๊ฑฐ ํ๊ธฐ ๊ท์ฐฎ์ผ๋ฉด ๊ตฌ์กฐ๋ถํดํ ๋น์ผ๋ก ์ฝ๊ฒ ์ฌ์ฉํ ์ ์์ต๋๋ค.
// Component
export default function Component({id,name}){
return(
<div key={id}>
<h2>{name}</h2>
</div>
)
}'React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [React] ์ด๋ฒคํธ ํธ๋ค๋ฌ (0) | 2025.04.04 |
|---|---|
| [React] State (0) | 2025.04.04 |
| [React] ๊ธฐ๋ณธ๋ฌธ๋ฒ - 2 (0) | 2025.03.19 |
| [React] ๊ธฐ๋ณธ๋ฌธ๋ฒ (1) | 2025.03.17 |
| [React]๋ฆฌ์กํธ ์คํ๋ฐฉ๋ฒ (0) | 2025.03.17 |