๐์ปดํฌ๋ํธ(Component)
์ปดํฌ๋ํธ๋ ์ฐ์ ๋ถ๋ก์ด๊ณ ํจ์์ ๋๋ค
์ปดํฌ๋ํธ = ํ๋ฉด์ ๊ตฌ์ฑํ๋ ํ๋์ ๋จ์
๋ ๊ณ ๋ธ๋ก์ ์ฝ๋๋ก ๋ง๋ค๋ฉด
// App ์ปดํฌ๋ํธ
function App (){
return <div></div>
}
๋ฆฌ์กํธ ์ธ๊ณ์์ ๋งํ๋ ์ปดํฌ๋ํธ๋ ํจ์
์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค๋ผ๊ณ ํ๋ค๋ฉด ์ฐ๋ฆฌ๋ html์ return ํ๋ ํจ์๋ฅผ ๋ง๋ค๋ฉด๋๋ค
๐ ๋ฆฌ์กํธ์์ ์ปดํฌ๋ํธ๋ ํด๋์คํ Component์ ํจ์ํ Component๊ฐ ์์ผ๋ฉฐ ๋์ ์ฐจ์ด์ ์ ์ํ๊ฐ๊ณผ Life Cycle์ ์ ๋ฌด์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ๐ฅ ํ์ง๋ง ๋ฆฌ์กํธ ๋ฒ์ 16.8๋ถํฐ๋ ํ (Hook)์ ์ํด ํจ์ํ ์ปดํฌ๋ํธ์์๋ ์ํ๊ฐ๊ณผ ์๋ช ์ฃผ๊ธฐ ํจ์ ์ฝ๋๋ฅผ ์์ฑํ ์ ์๊ฒ ๋์์ต๋๋ค.
๐ํด๋์คํ Component
๐ฅ ํด๋์คํ ์ปดํฌ๋ํธ๋ ์ํ๊ฐ์ ๊ฐ์ง ์ ์์ผ๋ฉฐ ๋ฆฌ์กํธ ์ปดํฌ๋ํธ์ ์๋ช ์ฃผ๊ธฐ ํจ์๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.ํน์ง์
๐ class ํค์๋๋ก ์์ํ๋ค
๐ Component๋ก ์์๋ฐ๋๋ค
๐ render() ํจ์๋ฅผ ์ฌ์ฉํ์ฌ JSX๋ก ๋ฐํํ๋ค
๐ props๋ฅผ ์กฐํํ ๋๋ this ํค์๋๋ฅผ ์ฌ์ฉํ๋ค
import React, { Component } from 'react';
class Hello extends Component {
render() {
const { color, name, isSpecial } = this.props;
return (
<div style={{ color }}>
{isSpecial && <b>*</b>}
ํ์ด {name}
</div>
);
}
}
export default Hello;
๐ฅ defaultProps ์ค์ ์์๋ ํด๋์ค ๋ด๋ถ์ static ํค์๋์ ํจ๊ป ์ ์ธํด์ผํฉ๋๋ค.
import React, { Component } from 'react';
class Hello extends Component {
// defaultProps ์ฒซ๋ฒ์งธ ์ค์ ๋ฐฉ๋ฒ
static defaultProps = {
name: '์ด๋ฆ์์'
};
render() {
// ...
);
}
// defaultProps ๋๋ฒ์งธ ์ค์ ๋ฐฉ๋ฒ
Hello.defaultProps = {
name: '์ด๋ฆ์์'
};
}
export default Hello;