[React] props

์ˆ˜๋ฏผ๐Ÿฃยท2022๋…„ 2์›” 15์ผ
0

React

๋ชฉ๋ก ๋ณด๊ธฐ
5/36

props

์ปดํฌ๋„ŒํŠธ ์†์„ฑ์„ ์„ค์ •ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์š”์†Œ์ด๋ฉฐ ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ์— ๊ฐ’์„ ์ „๋‹ฌํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
props ๊ฐ’์€ ํ•ด๋‹น ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ถˆ๋Ÿฌ์™€ ์‚ฌ์šฉํ•˜๋Š” ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ์—์„œ ์„ค์ •ํ•œ๋‹ค.

์˜ˆ์ œ๋กœ ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ APP.js, ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ MyComponent.js๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋‹ค.

JSX ๋‚ด๋ถ€์—์„œ props ๋ Œ๋”๋ง

props ๊ฐ’์€ ์ปดํฌ๋„ŒํŠธ ํ•จ์ˆ˜์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋ฐ›์•„ ์™€์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
props๋ฅผ ๋ Œ๋”๋งํ•  ๋•Œ JSX ๋‚ด๋ถ€์—์„œ {}๊ธฐํ˜ธ๋กœ ๊ฐ์‹ธ์ฃผ๋ฉด ๋œ๋‹ค.

์ปดํฌ๋„ŒํŠธ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ props ๊ฐ’ ์ง€์ •ํ•˜๊ธฐ

์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ์ธ APP.js์—์„œ MyComponent์˜ props๊ฐ’์„ ์ง€์ •ํ•œ๋‹ค.

props ๊ธฐ๋ณธ ๊ฐ’ ์„ค์ • : defaultProps

๋”ฐ๋กœ props ๊ฐ’์„ ์ง€์ •ํ•˜์ง€ ์•Š์•˜์„ ๋•Œ ๋ณด์—ฌ์ค„ ๊ธฐ๋ณธ๊ฐ’์„ ์„ค์ • ํ•œ๋‹ค.

ํƒœ๊ทธ ์‚ฌ์ด์˜ ๋‚ด์šฉ์„ ๋ณด์—ฌ์ฃผ๋Š” : children

๋ฆฌ์•กํŠธ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ปดํฌ๋„ŒํŠธ ํƒœ๊ทธ ์‚ฌ์ด์˜ ๋‚ด์šฉ์„ ๋ณด์—ฌ์ฃผ๋Š” props์ด๋‹ค.

๋น„๊ตฌ์กฐํ™” ํ• ๋‹น ๋ฌธ๋ฒ•์„ ํ†ตํ•ด props ๋‚ด๋ถ€ ๊ฐ’ ์ถ”์ถœํ•˜๊ธฐ

props ๊ฐ’์„ ์กฐํšŒ ํ•  ๋•Œ๋งˆ๋‹ค props ์ด๋ผ๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ์•ž์— ๋ถ™์—ฌ์ฃผ๊ณค ํ–ˆ๋Š”๋ฐ ์ด๋Ÿฌํ•œ ์ž‘์—…์„ ๋” ํŽธํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ES6์˜ ๋น„๊ตฌ์กฐํ™” ํ• ๋‹น ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•œ๋‹ค.


propTypes๋ฅผ ํ†ตํ•œ props ๊ฒ€์ฆ

์ปดํฌ๋„ŒํŠธ์˜ ํ•„์ˆ˜ props๋ฅผ ์ง€์ •ํ•˜๊ฑฐ๋‚˜ props์˜ ํƒ€์ž…์„ ์ง€์ •ํ•  ๋•Œ๋Š” propTypes๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
propTypes๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ defaultProp์„ ์„ค์ •ํ•˜๋Š” ๊ฒƒ๊ณผ ๋น„์Šทํ•˜๋‹ค.
์šฐ์„  propTypes๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์ฝ”๋“œ ์ƒ๋‹จ์— import ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ถˆ๋Ÿฌ์™€์•ผ ํ•œ๋‹ค.

isRequired๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•„์ˆ˜ propTypes ์„ค์ •

isRequired๋Š” propTypes๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์•˜์„ ๋•Œ ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๋ฅผ ๋„์–ด์ค€๋‹ค.


ํด๋ž˜์Šคํ˜• ์ปดํฌ๋„ŒํŠธ์—์„œ props ์‚ฌ์šฉํ•˜๊ธฐ

ํด๋ž˜์Šคํ˜• ์ปดํฌ๋„ŒํŠธ์—์„œ props๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” render ํ•จ์ˆ˜์—์„œ this.props๋ฅผ ์กฐํšŒํ•˜๋ฉด ๋œ๋‹ค.

โž• ํด๋ž˜์Šคํ˜• ์ปดํฌ๋„ŒํŠธ์—์„œ defaultProps์™€ propTypes๋ฅผ ์„ค์ •ํ•  ๋•Œ class ๋‚ด๋ถ€์—์„œ ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•

0๊ฐœ์˜ ๋Œ“๊ธ€