React

[React] state์™€ props

Alexim 2022. 6. 9. 16:47

๐Ÿ“— States

- ๋ฆฌ์•กํŠธ๋Š” ๋ฐ์ดํ„ฐ ์ค‘์‹ฌ์œผ๋กœ ์›€์ง์ธ๋‹ค. (๋ฐ์ดํ„ฐ์™€ ํ™”๋ฉด์˜ ์ผ์น˜)

- component๋Š” ๋ฐ์ดํ„ฐ, ํ™”๋ฉด์„ ํ•˜๋‚˜๋กœ ๋ฌถ์–ด๋†“์€ ๊ฒƒ์ด๊ณ  ํ™”๋ฉด์—์„œ ๋ฐ”๋€” ๋ถ€๋ถ„์„ state๋กœ ๋งŒ๋“ ๋‹ค.

 

๐Ÿ“— state์™€ props

- props(properties) ์™€ state๋Š” ์ผ๋ฐ˜ JavsScript ๊ฐ์ฒด์ด๋‹ค.

- ๋‘ ๊ฐ์ฒด ๋ชจ๋‘ ๋ Œ๋”๋ง ๊ฒฐ๊ณผ๋ฌผ์— ์˜ํ–ฅ์„ ์ฃผ๋Š” ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. (์ปดํฌ๋„ŒํŠธ์˜ render() ํ•จ์ˆ˜๋ฅผ ์œ„ํ•œ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ผ๊ณ  ๋งํ•  ์ˆ˜ ์žˆ๋‹ค.)

- props์™€ state๋Š” HTML ์ถœ๋ ฅ์ด ๋‚˜์˜ค๋Š” "raw data"๋ฅผ ๊ตฌ์„ฑํ•œ๋‹ค.

 

 

๐Ÿ“— state์™€ props์˜ ์ฐจ์ด์ 

- props๋Š” ํ•จ์ˆ˜ ๋งค๊ฐœ๋ณ€์ˆ˜์ฒ˜๋Ÿผ ์ปดํฌ๋„ŒํŠธ์— "์ „๋‹ฌ"๋˜๋Š” ๋ฐ˜๋ฉด state๋Š” (ํ•จ์ˆ˜ ๋‚ด์— ์„ ์–ธ๋œ ๋ณ€์ˆ˜์ฒ˜๋Ÿผ) ์ปดํฌ๋„ŒํŠธ "์•ˆ"์—์„œ ๊ด€๋ฆฌ๋œ๋‹ค.

- component๊ฐ€ ํŠน์ • ์‹œ์ ์— ์†์„ฑ ์ค‘ ํ•˜๋‚˜๋ฅผ ๋ณ€๊ฒฝํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ํ•ด๋‹น ์†์„ฑ์€ "state" ์—ฌ์•ผ ํ•œ๋‹ค.

- component๋Š” props๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค.

 

  props state
๋ถ€๋ชจ Component๋กœ๋ถ€ํ„ฐ ์ดˆ๊ธฐ๊ฐ’์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋Š”๊ฐ€? YES YES
๋ถ€๋ชจ Component์— ์˜ํ•ด ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ๋Š”๊ฐ€? YES NO
Component์•ˆ์—์„œ ๊ธฐ๋ณธ๊ฐ’์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€?
(๋ถ€๋ชจ๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ props์™€ state ์ดˆ๊ธฐ๊ฐ’์€ ๋ชจ๋‘ Component ๋‚ด๋ถ€์— ์ •์˜๋œ ๊ธฐ๋ณธ๊ฐ’๋ณด๋‹ค ์šฐ์„ ์‹œ ๋œ๋‹ค.)
YES YES
Component์•ˆ์—์„œ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€? NO YES
์ž์‹ Component์˜ ์ดˆ๊ธฐ๊ฐ’์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€? YES YES
์ž์‹ Component์—์„œ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€? YES NO

 

https://github.com/uberVU/react-guide/blob/master/props-vs-state.md

 

GitHub - uberVU/react-guide: React adventures

React adventures . Contribute to uberVU/react-guide development by creating an account on GitHub.

github.com

 

๐Ÿ“— Component์—๋Š” State๊ฐ€ ์žˆ์–ด์•ผ ํ•˜๋Š”๊ฐ€? 

- state๋Š” ์„ ํƒ์‚ฌํ•ญ์ด๋‹ค.

- state๋Š” ๋ณต์žก์„ฑ์„ ์ฆ๊ฐ€์‹œํ‚ค๊ณ  ์˜ˆ์ธก ๊ฐ€๋Šฅ์„ฑ์„ ๊ฐ์†Œ์‹œํ‚ค๋ฏ€๋กœ ๋„ˆ๋ฌด ๋งŽ์€ state ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ํ”ผํ•ด์•ผ ํ•œ๋‹ค.