โ ์ปดํฌ๋ํธ(Component)
ํ๋์ ํน์ ํ ๊ธฐ๋ฅ์ ์ํํ ์ ์๋๋ก ๊ตฌ์ฑํ ์ฌ์ฌ์ฉ์ด ๊ฐ๋ฅํ ์์ ๊ธฐ๋ฅ์ ๋จ์
์ปดํฌ๋ํธ๋ฅผ ํตํด UI๋ฅผ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ๊ฐ๋ณ์ ์ธ ์ฌ๋ฌ ์กฐ๊ฐ์ผ๋ก ๋๋๊ณ , ๊ฐ ์กฐ๊ฐ์ ๊ฐ๋ณ์ ์ผ๋ก ์ดํด๋ณผ ์ ์๋ค.
โ ์ปดํฌ๋ํธ ๋ง๋๋ ๋ฐฉ๋ฒ
๐ ํจ์ํ ์ปดํฌ๋ํธ
function Welcome(props) {
return <h1>Hello, {props.name}</h1>;
}
const Welcome = (props) => {
return <h1>Hello, {props.name}</h1>;
}
๐ ํด๋์คํ ์ปดํฌ๋ํธ
class Welcome extends React.Component {
render() {
return <h1>Hello, {this.props.name}</h1>;
}
}
์ฐธ๊ณ ์๋ฃ : https://ko.legacy.reactjs.org/docs/components-and-props.html
โ ํจ์ํ ์ปดํฌ๋ํธ VS ํด๋์คํ ์ปดํฌ๋ํธ
๐ ํจ์ํ ์ปดํฌ๋ํธ
- hook์ ํตํด ๋ผ์ดํ ์ฌ์ดํด ๊ธฐ๋ฅ๊ณผ state ๊ด๋ฆฌ ๊ธฐ๋ฅ์ด ๊ตฌํ๋๋ค.
- ์ ์ธํ๊ธฐ ํธํ๋ค.
- ๋ฉ๋ชจ๋ฆฌ ์์์ ๋ ์ฌ์ฉํ๋ค.
- react ๊ณต์๋ฌธ์์์ ์ถ์ฒํ๋ ๋ฐฉ๋ฒ์ด๋ค.
๐ ํด๋์คํ ์ปดํฌ๋ํธ
- ๋ผ์ดํ ์ฌ์ดํด ๊ธฐ๋ฅ๊ณผ state ๊ด๋ฆฌ ๊ธฐ๋ฅ์ด ์ฝ๋์ ๊ตฌํ๋๋ค.
- class ํค์๋๊ฐ ํ์ํ๋ฉฐ, Component๋ก ์์์ ๋ฐ์์ผ ํ๋ค.
- render() ๋ฉ์๋๊ฐ ๋ฐ๋์ ํ์ํ๋ค.
- ์์ ๋ฉ์๋๋ฅผ ์ ์ํ ์ ์๋ค.
โ ์ปดํฌ๋ํธ ์ฅ์
React์์๋ ์ปดํฌ๋ํธ๋ฅผ ๊ธฐ๋ณธ ๋จ์๋ก ์ฌ์ฉํ์ฌ ์์กด์ฑ์ด ๋ฎ๊ณ ์ฌ์ฌ์ฉ์ฑ๊ณผ ๋ฒ์ฉ์ฑ์ ๋์ธ ์ฝ๋๋ฅผ ์งํฅํ๋ค.
๋ฐ๋ผ์ ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ๋ฉด ์ฌ์ฌ์ฉ์ฑ๊ณผ ๋ฒ์ฉ์ฑ์ ๋์ผ ์ ์๋ค.
โ ์ปดํฌ๋ํธ ๋ง๋๋ ๋ฐฉ๋ฒ
๐ ๊ด์ฌ์ฌ๋ฅผ ๋ถ๋ฆฌํ๊ณ ๋จ์ผ ์ฑ
์์ผ๋ก ์ค๊ณํ๊ธฐ
- ์ปดํฌ๋ํธ๊ฐ ์ฌ์ฌ์ฉ์ฑ๊ณผ ๋ฒ์ฉ์ฑ์ ์ง๋๊ธฐ ์ํด์๋ ๊ด์ฌ์ฌ์ ๋ฐ๋ผ ํ ๊ฐ์ง์ ์ญํ ๋ง ์ํํด์ผ ํ๋ค.(์ด๋ฅผ ๊ฐ์ฒด์งํฅ์์๋ ๋จ์ผ ์ฑ
์ ์์น์ด๋ผ ํจ)
- ๋ฆฌ์กํธ ์ปดํฌ๋ํธ๊ฐ ํ ๊ฐ์ง ์ญํ ๋ง ์ํํ๊ธฐ ์ํด์๋ ๋์ผํ props๋ฅผ ๋ฐ์ผ๋ฉด ๋์ผํ JSX๋ฅผ ๋ฆฌํดํ๋ ์์ํจ์๋ก ์ด๋ค์ ธ์ผ ํ๋ค.
- ์ด๋ฌํ ๋จ์ผ ์ฑ
์์ ๊ฐ์ง๋ ์์ ์ปดํฌ๋ํธ๋ค์ ํ
์คํธํ๊ธฐ ์ข๊ณ , ๊ฐ๋
์ฑ๋ ์ข๋ค.
๐ ์ ์ด ์์ํ๊ธฐ
- ์ ์ด๋ฅผ ์ธ๋ถ์ ์์ํ ์๋ก ์ปดํฌ๋ํธ์ ์ ์ฐ์ฑ๊ณผ ์ฌ์ฌ์ฉ์ฑ์ด ๋์์ง๋ค.
- ์ ์ด๋ฅผ ์์์ ๋งก๊ธธ์๋ก ๋น์ฆ๋์ค ๋ก์ง์ ๋งก๋ ์ปดํฌ๋ํธ์ importํด์ ์ฌ์ฌ์ฉ์ด ๊ฐ๋ฅํด์ง๋ค.
- ๋ฐ๋ฉด ์ ์ด๋ฅผ ์์ํ ์๋ก ์์ํ ์ฝ๋๋ฅผ ์ฌ์ฉํ๋ ์ฝ๋์ ๋ํ ์ดํด๊ฐ ์ด๋ ค์์ง๊ณ , ๊ฐ๋
์ฑ์ด ๋จ์ด์ง๋ค๋ ๋จ์ ๋ ์๋ค.
- ์ด์ ์์๊ณผ ์ฌ์ฉ ์ฉ์ด์ฑ์ ์ค์ฌ์ ์ ์ก๋ ๊ฒ์ด ์ค์ํ๋ค.