Props

Props๋ž€ Properties์˜ ์ค„์ž„๋ง๋กœ, ๋ฆฌ์•กํŠธ์—์„œ๋Š” ์†์„ฑ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐ์ดํ„ฐ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

  • props๋Š” ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ์—์„œ ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ์˜ ๋‹จ๋ฐฉํ–ฅ ๋ฐ์ดํ„ฐ ํ๋ฆ„์„ ๊ฐ–์Šต๋‹ˆ๋‹ค.
  • props๋Š” ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ์—์„œ ๊ฐ’์„ ์ง์ ‘์ ์œผ๋กœ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ฆ‰, props๋Š” ๐Ÿ‘‰ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ๋กœ๋ถ€ํ„ฐ ๋ฐ›์•„์˜จ ๋ฐ์ดํ„ฐ์ž…๋‹ˆ๋‹ค.

Reference - AWS

State

State๋ž€ ์ผ๋ฐ˜์ ์œผ๋กœ ์ปดํฌ๋„ŒํŠธ์˜ ๋‚ด๋ถ€์—์„œ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•ด์•ผํ•  ๋•Œ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

  • ์ปดํฌ๋„ŒํŠธ์—์„œ ๋™์ ์ธ ๊ฐ’์„ ์ƒํƒœ(state)๋ผ๊ณ  ๋ถ€๋ฅด๋ฉฐ, ๋™์ ์ธ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฐ ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • ํ”„๋กœํผํ‹ฐ(props)์˜ ํŠน์ง•์€ ์ปดํฌ๋„ŒํŠธ ๋‚ด๋ถ€์—์„œ ๊ฐ’์„ ๋ฐ”๊ฟ€ ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ฐ’์„ ๋ฐ”๊ฟ”์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๋„ ๋ถ„๋ช… ์กด์žฌํ•˜๋ฉฐ, ์ด๋Ÿด๋•Œ state๋ผ๋Š” ๊ฒƒ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฐ’์„ ์ €์žฅํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ์ฒด๋กœ ๋ณดํ†ต ์ด๋ฒคํŠธ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

state๋Š” ์–ด๋–ค ์ปดํฌ๋„ŒํŠธ์—๋งŒ ํ•œ์ •ํ•˜์—ฌ ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•˜๋ฉฐ, ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋Š” ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

state๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ž์œ ๋กญ๊ฒŒ ์ •์˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ผ๋ฐ˜์ ์ธ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ์ฒด์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์–ด๋–ค ๊ฐ’์ด ๋ Œ๋”๋ง ๋˜๋Š” ๋ฐ์ดํ„ฐ ํ๋ฆ„ ์ƒ์—์„œ (์˜ˆ๋ฅผ ๋“ค์–ด, ํƒ€์ด๋จธ์˜ ID) ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค๋ฉด, ํ•ด๋‹น ๊ฐ’์„ state์— ๋„ฃ์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌํ•œ ๊ฐ’์€ ์ปดํฌ๋„ŒํŠธ ์ธ์Šคํ„ด์Šค์˜ ํ•„๋“œ๋กœ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

state์˜ ๊ฐ’์€ ์ง์ ‘ ๋ณ€๊ฒฝํ•˜๋ฉด ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ดํ›„ ํ˜ธ์ถœ๋˜๋Š” setState()๊ฐ€ ์ด์ „์— ์ ์šฉ๋œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ฎ์–ด์“ฐ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
state ๊ฐ’์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ถˆ๋ณ€์ (Immutable)์ธ ๋ฐ์ดํ„ฐ๋กœ ์ทจ๊ธ‰ํ•˜๊ณ , state์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ• ๋•Œ๋Š” ๋ฌด์กฐ๊ฑด setState()๋ฅผ ์ด์šฉํ•ด state์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ฆ‰, state๋Š” ๐Ÿ‘‰ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์ž…๋‹ˆ๋‹ค.

 

state ์„ ์–ธ ๋ฐฉ๋ฒ•

const [state, setState] = useState(initialState);
const [ ๋ณ€๊ฒฝ ๋  ๋ฐ์ดํ„ฐ ๊ฐ’, ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ ํ•จ์ˆ˜ ] = useState(์ดˆ๊ธฐ๊ฐ’);

 

๋ฆฌ๋ Œ๋”๋ง ๋ฐœ์ƒ ์กฐ๊ฑด

React ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ Œ๋”๋ง์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์‹œ์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. Props๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ์„ ๋•Œ
  2. State๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ์„ ๋•Œ
  3. forceUpdate() ๋ฅผ ์‹คํ–‰ํ•˜์˜€์„ ๋•Œ
  4. ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ Œ๋”๋ง๋˜์—ˆ์„ ๋•Œ

1 ~ 3๋ฒˆ์˜ ๊ณผ์ •์„ ํ†ตํ•ด ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ Œ๋”๋ง๋  ๋•Œ, ์ž์‹ ์ปดํฌ๋„ŒํŠธ ๋˜ํ•œ ๊ฐ™์€ ๊ณผ์ •์œผ๋กœ ๋ Œ๋”๋ง์ด ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ, ์ปดํฌ๋„ŒํŠธ์—์„œ ๋ Œ๋”๋ง ๊ฒฐ๊ณผ์— ์ „ํ˜• ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๋Š” ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ๋ฐœ์ƒํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด, ๋ถˆํ•„์š”ํ•œ ๋ Œ๋”๋ง์ด ๋ฐœ์ƒ ํ•˜๋ฏ€๋กœ ์„ฑ๋Šฅ ์†์‹ค์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋ Œ๋”๋ง์—์„œ ์ˆ˜ํ–‰ํ•˜๋Š” ๋กœ์ง์ด ๋งŽ์„์ˆ˜๋ก, ๋งŽ์€ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ถœ๋ ฅํ•  ์ˆ˜๋ก ์†์‹ค์€ ๋ฐฐ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

 

References

 

State and Lifecycle – React

A JavaScript library for building user interfaces

ko.reactjs.org

 

Components์™€ Props – React

A JavaScript library for building user interfaces

ko.reactjs.org

 

React ๋ Œ๋”๋ง ์ดํ•ดํ•˜๊ธฐ

React์˜ ๋ Œ๋”๋ง ๊ณผ์ •๊ณผ ์ž˜๋ชป๋œ ์‹œ๋‚˜๋ฆฌ์˜ค๋กœ ์ธํ•˜์—ฌ ์ด๋ฅธ ์ตœ์ ํ™”ํ•˜๋Š” ์ผ€์ด์Šค๋ฅผ ์‚ดํŽด๋ด„๊ณผ ํ•จ๊ป˜ ์ด๋ฅผ ๊ฐœ์„ ํ•˜๋ฉด์„œ, Hook์œผ๋กœ๋Š” ์ด๋ ‡๊ฒŒ ์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค! ๋ฅผ ์—ฌ๋Ÿฌ๋ถ„๊ป˜ ์†Œ๊ฐœํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

medium.com

 

๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค!