State ๋Œ์–ด์˜ฌ๋ฆฌ๊ธฐ

2022. 5. 7. 17:31ใ†React

State ๋Œ์–ด์˜ฌ๋ฆฌ๊ธฐ(React ๊ณต์‹๋ฌธ์„œ)

 

https://ko.reactjs.org/docs/lifting-state-up.html

 

State ๋Œ์–ด์˜ฌ๋ฆฌ๊ธฐ – React

A JavaScript library for building user interfaces

ko.reactjs.org

 

๋™์ผํ•œ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์—ฌ๋Ÿฌ ์ปดํฌ๋„ŒํŠธ์— ๋ฐ˜์˜ํ•ด์•ผ ํ•  ๋•Œ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๊ณตํ†ต ์กฐ์ƒ์œผ๋กœ state๋ฅผ ๋Œ์–ด์˜ฌ๋ฆฌ๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. 

 

React ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์•ˆ์—์„œ ๋ณ€๊ฒฝ์ด ์ผ์–ด๋‚˜๋Š” ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด์„œ๋Š” "์ง„๋ฆฌ์˜ ์›์ฒœ(source of truth)"๋ฅผ ํ•˜๋‚˜๋งŒ ๋‘์–ด์•ผ ํ•œ๋‹ค.

 

์ด ๋ง์€ ๊ณง ๋™์ผํ•œ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ state๋Š” ํ•œ ๊ณณ์—์„œ ํญํฌ์ฒ˜๋Ÿผ ๋‚ด๋ ค๊ฐ€๋Š” ๋ฐฉ๋ฒ•์ด ์ข‹์€ ๋ฐฉ๋ฒ•์ด๋ผ๋Š” ๋œป์ด๋‹ค. 

๋‹ค๋ฅธ ์ปดํฌ๋„ŒํŠธ ๊ฐ„์— ์กด์žฌํ•˜๋Š” state๋ฅผ ๋™๊ธฐํ™”์‹œํ‚ค๋ ค๊ณ  ๋…ธ๋ ฅํ•˜๋Š” ๋Œ€์‹ ์— ํ•˜ํ–ฅ์‹ ๋ฐ์ดํ„ฐ ํ๋ฆ„์— ๊ธฐ๋Œ€์„œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์„ ๊ณต์‹๋ฌธ์„œ์—์„œ ๊ถŒ์žฅํ•œ๋‹ค. 

 

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

 

 

 

 

'React' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

React - useRef  (0) 2022.05.07
React - ํ•ฉ์„ฑ  (0) 2022.05.07
React - useEffect, useCallback  (0) 2022.04.11