์ปดํฌ๋ํธ ์์ฑ์ ์ค์ ํ ๋ ์ฌ์ฉํ๋ ์์์ด๋ฉฐ ์์ ์ปดํฌ๋ํธ๊ฐ ํ์ ์ปดํฌ๋ํธ์ ๊ฐ์ ์ ๋ฌํ ๋ ์ฌ์ฉํ๋ค.
props ๊ฐ์ ํด๋น ์ปดํฌ๋ํธ๋ฅผ ๋ถ๋ฌ์ ์ฌ์ฉํ๋ ๋ถ๋ชจ ์ปดํฌ๋ํธ์์ ์ค์ ํ๋ค.
์์ ๋ก ์์ ์ปดํฌ๋ํธ APP.js, ํ์ ์ปดํฌ๋ํธ MyComponent.js๋ฅผ ์ฌ์ฉํ ๊ฒ์ด๋ค.
props ๊ฐ์ ์ปดํฌ๋ํธ ํจ์์ ํ๋ผ๋ฏธํฐ๋ก ๋ฐ์ ์์ ์ฌ์ฉํ ์ ์๋ค.
props๋ฅผ ๋ ๋๋งํ ๋ JSX ๋ด๋ถ์์ {}๊ธฐํธ๋ก ๊ฐ์ธ์ฃผ๋ฉด ๋๋ค.
์์ ์ปดํฌ๋ํธ์ธ APP.js์์ MyComponent์ props๊ฐ์ ์ง์ ํ๋ค.
๋ฐ๋ก props ๊ฐ์ ์ง์ ํ์ง ์์์ ๋ ๋ณด์ฌ์ค ๊ธฐ๋ณธ๊ฐ์ ์ค์ ํ๋ค.
๋ฆฌ์กํธ ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ ๋ ์ปดํฌ๋ํธ ํ๊ทธ ์ฌ์ด์ ๋ด์ฉ์ ๋ณด์ฌ์ฃผ๋ props์ด๋ค.
props ๊ฐ์ ์กฐํ ํ ๋๋ง๋ค props ์ด๋ผ๋ ํค์๋๋ฅผ ์์ ๋ถ์ฌ์ฃผ๊ณค ํ๋๋ฐ ์ด๋ฌํ ์์ ์ ๋ ํธํ๊ฒ ํ๊ธฐ ์ํด ES6์ ๋น๊ตฌ์กฐํ ํ ๋น ๋ฌธ๋ฒ์ ์ฌ์ฉํ๋ค.
์ปดํฌ๋ํธ์ ํ์ props๋ฅผ ์ง์ ํ๊ฑฐ๋ props์ ํ์
์ ์ง์ ํ ๋๋ propTypes๋ฅผ ์ฌ์ฉํ๋ค.
propTypes๋ฅผ ์ง์ ํ๋ ๋ฐฉ๋ฒ์ defaultProp์ ์ค์ ํ๋ ๊ฒ๊ณผ ๋น์ทํ๋ค.
์ฐ์ propTypes๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ์ฝ๋ ์๋จ์ import ๊ตฌ๋ฌธ์ ์ฌ์ฉํ์ฌ ๋ถ๋ฌ์์ผ ํ๋ค.
isRequired๋ propTypes๋ฅผ ์ง์ ํ์ง ์์์ ๋ ๊ฒฝ๊ณ ๋ฉ์์ง๋ฅผ ๋์ด์ค๋ค.
ํด๋์คํ ์ปดํฌ๋ํธ์์ props๋ฅผ ์ฌ์ฉํ ๋๋ render ํจ์์์ this.props๋ฅผ ์กฐํํ๋ฉด ๋๋ค.
โ ํด๋์คํ ์ปดํฌ๋ํธ์์ defaultProps์ propTypes๋ฅผ ์ค์ ํ ๋ class ๋ด๋ถ์์ ์ง์ ํ๋ ๋ฐฉ๋ฒ