๐Ÿ“”๊ฐœ๋ฐœ ์ผ๊ธฐ

[ํ•ญํ•ด99 - 4์ฃผ์ฐจ] ์ฃผํŠน๊ธฐ ๊ธฐ์ดˆ - React

IOTrue 2023. 1. 1. 19:46

โš“ ํ•ญํ•ด99 - 4์ฃผ์ฐจ ํšŒ๊ณ ๋ก (์ฃผํŠน๊ธฐ ๊ธฐ์ดˆ)

์ƒˆํ•ด ๋ณต ๋งŽ์ด ๋ฐ›์œผ์„ธ์š”~~~

ํšŒ๊ณ ๋ก ๋ณด์‹œ๊ธฐ ์ „์— ์ƒˆํ•ด ๋ณต ๋จผ์ € ๋ฐ›์œผ์„ธ์š”~~~๐Ÿคธ‍โ™‚๏ธ๐Ÿคธ‍โ™‚๏ธ๐Ÿคธ‍โ™‚๏ธ

2023๋…„ ์ƒˆํ•ด๊ฐ€ ๋ฐ์•˜๋‹ค~~~~~~๐ŸŽ‰โœจ

์ฃผํŠน๊ธฐ ์ˆ™๋ จ์ฃผ์ฐจ๋„ ๋ฐ์•˜๋‹ค~~~~๐Ÿ˜€

 

์ด๋ฒˆ์— ์ง„ํ–‰ํ•œ ์ฃผํŠน๊ธฐ-๊ธฐ์ดˆ ์ฃผ์ฐจ์— ๋Œ€ํ•œ ํšŒ๊ณ ๋ก์„ ์ž‘์„ฑํ•˜๋ ค๊ณ  ํ•œ๋‹ค.

๋ฆฌ์•กํŠธ๋ฅผ ์ด๋ฒˆ์— ์ฒ˜์Œ ๋งŒ๋‚ฌ๋Š”๋ฐ

๊ธฐ์ดˆ ์ฃผ์ฐจ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๋ฆฌ์•กํŠธ ๊ธฐ๋ณธ ๊ฐœ๋…์— ๋Œ€ํ•ด ์ •๋ง ๋งŽ์ด ์•Œ๊ฒŒ ๋˜์–ด์„œ

์•„์ฃผ์•„์ฃผ ๋ฟŒ๋“ฏํ•œ ํ•œ ์ฃผ์˜€๋‹ค.

์ž! ๋ฆฌ์•กํŠธ ๊ธฐ์ดˆ ์ฃผ์ฐจ ํšŒ๊ณ ๋ก,

๊ฐ€๋ณด์ž๊ณ ~!

 

 

์ด๋ฒˆ ์ฃผ ํ‚ค์›Œ๋“œ!

๐Ÿ˜Ž State, Props, ๋ฆฌ๋ Œ๋”๋ง ๋ฐœ์ƒ ์กฐ๊ฑด

State

State
State๋Š” ์ปดํฌ๋„ŒํŠธ ์•ˆ์—์„œ ๊ด€๋ฆฌ๋˜๊ณ  ๋ฐ์ดํ„ฐ ๋˜๋Š” ์ •๋ณด๋ฅผ ๋‹ด์€ javascript ๊ฐ์ฒด์ด๋‹ค.
(ํ•จ์ˆ˜ ๋‚ด์— ์„ ์–ธ๋œ ๋ณ€์ˆ˜์ฒ˜๋Ÿผ)

 

  • ๋ Œ๋”๋ง๋œ ๊ฐ’์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. (ํ™”๋ฉด์— ๋ณด์ด๋Š” ๊ฐ’)
  • ์‚ฌ์šฉ์ž ๋˜๋Š” ๋„คํŠธ์›Œํฌ ๋ณ€๊ฒฝ์— ๋”ฐ๋ผ state๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๊ฐ์ฒด์˜ ์ƒํƒœ๊ฐ€ ๋ฐ”๋€” ๋•Œ๋งˆ๋‹ค ๋ฆฌ์•กํŠธ๋Š” ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ธŒ๋ผ์šฐ์ €์— ๋ฆฌ๋ Œ๋”๋งํ•œ๋‹ค. (setState()๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.)

 

Props

Props (Properties)
Props๋Š” ๋ฐ์ดํ„ฐ ๋˜๋Š” ์ •๋ณด๋ฅผ ๋‹ด์€ javascript ๊ฐ์ฒด์ด๋‹ค. (ํ•จ์ˆ˜ ๋งค๊ฐœ๋ณ€์ˆ˜์ฒ˜๋Ÿผ)

 

  • ๋‹จ๋ฐฉํ–ฅ ๋ฐ์ดํ„ฐ ํ๋ฆ„ : ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ์— ๊ฐ’์„ ์ „๋‹ฌํ• ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
  • ์ˆ˜์ •ํ•  ์ˆ˜ ์—†๋‹ค. (์ „๋‹ฌ๋ฐ›์€ ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ ์ž…์žฅ์—์„œ๋Š” ์ฝ๊ธฐ ์ „์šฉ ๋ฐ์ดํ„ฐ์ด๋‹ค.)

 

 

State ์™€ Props์˜ ์ฐจ์ด

props์™€ state ๋Š” ์ผ๋ฐ˜ JavaScript ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค.
๋‘ ๊ฐ์ฒด ๋ชจ๋‘ ๋ Œ๋”๋ง ๊ฒฐ๊ณผ๋ฌผ์— ์˜ํ–ฅ์„ ์ฃผ๋Š” ์ •๋ณด๋ฅผ ๊ฐ–๊ณ  ์žˆ๋Š”๋ฐ,
ํ•œ ๊ฐ€์ง€ ์ค‘์š”ํ•œ ๋ฐฉ์‹์—์„œ ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. 
props๋Š” (ํ•จ์ˆ˜ ๋งค๊ฐœ๋ณ€์ˆ˜์ฒ˜๋Ÿผ) ์ปดํฌ๋„ŒํŠธ์— ์ „๋‹ฌ๋˜๋Š” ๋ฐ˜๋ฉด 
state๋Š” (ํ•จ์ˆ˜ ๋‚ด์— ์„ ์–ธ๋œ ๋ณ€์ˆ˜์ฒ˜๋Ÿผ) ์ปดํฌ๋„ŒํŠธ ์•ˆ์—์„œ ๊ด€๋ฆฌ๋ฉ๋‹ˆ๋‹ค.

-๋ฆฌ์•กํŠธ ๊ณต์‹ ๋ฌธ์„œ-

State ์™€ Props ๋น„๊ต

  State Props
์œ ์Šค์ผ€์ด์Šค ๋ทฐ์— ๋ Œ๋”๋ง ๋˜์–ด์•ผ ํ•˜๋Š”
์ปดํฌ๋„ŒํŠธ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•œ๋‹ค
๋ฐ์ดํ„ฐ, ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ
์ž์‹ ์ปดํฌ๋„ŒํŠธ์— ์ „๋‹ฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•œ๋‹ค
๊ฐ€๋ณ€์„ฑ ์ƒํƒœ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์œ ํ•˜๊ณ 
์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ๋‹ค
props๋Š” ๋ฐ”๋€” ์ˆ˜ ์—†๋‹ค.
ํ•œ ๋ฒˆ ์„ค์ •๋˜๋ฉด props๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค
์—…๋ฐ์ดํŠธ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ state๋ฅผ ์—…๋ฐ์ดํŠธํ•œ๋‹ค ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ๋Š”
ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ์— ๋Œ€ํ•œ props๋ฅผ ์„ค์ •ํ•œ๋‹ค

 

 

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

state์˜ ๋ณ€๊ฒฝ
setState ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด
๋ฆฌ์•กํŠธ๋Š” ๋ณ€๊ฒฝ์„ ๊ฐ์ง€ํ•˜๊ณ  ๋ฆฌ๋ Œ๋”๋ง ํ•œ๋‹ค. (์–•์€ ๋ณต์‚ฌ๋ฅผ ํ†ตํ•œ ๋น„๊ต)

์ƒˆ๋กœ์šด props์˜ ์ „๋‹ฌ

์ „๋‹ฌ๋ฐ›์€ props ๊ฐ’์ด ์—…๋ฐ์ดํŠธ ๋˜๋ฉด ๋ฆฌ๋ Œ๋”๋ง์„ ํ•จ

๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ์˜ ๋ Œ๋”๋ง

๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ฆฌ๋ Œ๋”๋ง ๋˜๋ฉด ์ž์‹ ์ปดํฌ๋„ŒํŠธ๋„ ํ•จ๊ป˜ ๋ฆฌ๋ Œ๋”๋ง ๋จ

forceUpdate()์˜ ์‹คํ–‰

๋ฆฌ๋ Œ๋”๋ง์„ ํ•˜๊ณ  ์‹ถ์„ ๊ฒฝ์šฐ ์‚ฌ์šฉํ• ์ˆ˜ ์žˆ๋Š” ๋ฉ”์„œ๋“œ (๊ฐ•์ œ ๋ฆฌ๋ Œ๋”๋ง)

shouldComponentUpdate์—์„œ true๊ฐ€ ๋ฐ˜ํ™˜๋  ๋•Œ
๊ฐ๊ฐ์˜ ์ปดํฌ๋„ŒํŠธ๋Š” shouldComponentUpdate ๋ผ๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ 
state์˜ ๋ณ€๊ฒฝ ๋˜๋Š” ์ƒˆ๋กœ์šด props๋ฅผ ์ „๋‹ฌ ๋ฐ›๋Š” ๊ฒฝ์šฐ ์‹คํ–‰๋œ๋‹ค.
์ด๋•Œ ๊ธฐ๋ณธ์ ์œผ๋กœ return ๊ฐ’์€ true ๊ฐ€ ๋˜์–ด ๋ Œ๋”๋ง์ด ์‹œ์ž‘๋˜๊ณ ,
๋ฆฌ๋ Œ๋”๋ง์ด ํ•„์š”ํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ return value = false๋กœ ์ง€์ •ํ•ด์„œ ๋ฆฌ๋ Œ๋”๋ง์„ ๋ง‰์„ ์ˆ˜ ์žˆ๋‹ค

 

 

๋ฆฌ์•กํŠธ์˜ ์•„์ฃผ์•„์ฃผ ๊ธฐ๋ณธ ๊ฐœ๋…๋“ค์„ ์ •๋ฆฌํ•ด๋ณด์•˜๋‹ค.

๋ฆฌ์•กํŠธ ๋ฌธ๋ฒ•์ด ์ต์ˆ™ํ•˜์ง€ ์•Š์•„์„œ 

์ด๋ฒˆ ์ฃผ ์ดˆ๊นŒ์ง€๋Š” ๋งŽ์ด ์–ด๋ ค์šด ๋А๋‚Œ์ด์—ˆ๋‹ค.

ํ•˜์ง€๋งŒ ๋ฐ˜๋ณตํ•˜๊ณ , ๋ฌธ์„œ๋ฅผ ์ฝ๊ณ , ๊ฐœ๋…์„ ์ตํžˆ๋‹ค๋ณด๋‹ˆ

์–ด๋А์ˆœ๊ฐ„ ๋ˆˆ์— ๋“ค์–ด์˜ค๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค!

์šฐ์™€์•„ใ…ใ… ๋ˆˆ์— ๋“ค์–ด์˜จ๋‹ค! ํ•˜๋Š” ์ˆœ๊ฐ„

๋ฐ”๋กœ ๋ฆฌ์•กํŠธ-์ˆ™๋ จ ์ฃผ์ฐจ๊ฐ€ ์‹œ์ž‘๋๊ณ  react-redux ๋“ฑ์„ ๊ณต๋ถ€ํ•˜๋А๋ผ

๋‹ค์‹œ ์–ด๋ ค์šด ๋А๋‚Œ์ด๋‹คใ…Žใ…Žใ…Žใ…Žใ…Žใ…Žใ…Ž

ํ•˜์ง€๋งŒ ์ด๊ฑด ์—ญ์‹œ ์ต์ˆ™ํ•˜์ง€ ์•Š์•„์„œ ๋ฐ›๋Š” ๋А๋‚Œ์ผ ๊ฒƒ์ด๋‹ค.

๋ฐ˜๋ณตํ•˜๊ณ  ๊ฐœ๋…๋“ค์„ ์ตํžˆ๋‹ค๋ณด๋ฉด

๋Š˜ ๊ทธ๋ž˜์™”๋“ฏ ์–ด๋А์ˆœ๊ฐ„ ๋ˆˆ์— ์ต๊ณ  ์ดํ•ด๊ฐ€ ๋˜๋Š” ์ˆœ๊ฐ„์ด ์˜ค๊ฒ ์ง€!

 

๋””๋ฒ„๊น…!

 

2023๋…„ ์ƒˆํ•ด๊ฐ€ ๋ฐ์•˜๋‹ค.

๋‚ ์”จ๋„ ์ข‹๊ณ 

์ƒˆ๋กœ์šด ์ฃผ์ฐจ๋„ ์‹œ์ž‘๋˜์—ˆ๊ณ 

๋จธ๋ฆฌ๋„ ์ž๋ฅด๊ณ  ์™”๋‹ค ๐Ÿ’‡‍โ™‚ ๊ฐœ์šดํ•˜๋‹ค!

2023๋…„ ์‹œ์ž‘์ด ์ข‹๋‹ค.

์ง€๊ธˆ๊นŒ์ง€ ํ•˜๋˜ ๊ฒƒ์ฒ˜๋Ÿผ! (๊ฑฐ๊ธฐ์— ์กฐ๊ธˆ ๋” ๋ณดํƒœ์„œ!ใ…Žใ…Žใ…Žใ…Žใ…Ž)

์—ด์‹ฌํžˆ ์ธํ’‹๊ณผ ์•„์›ƒํ’‹์„ ๋‚ด๋ณด์ž!

2023๋…„!

์ž, ๊ฐ€๋ณด์ž๊ณ !

 

์•„...์•„๋‹ˆ...!
๊ฐ€๋ณด์ž๊ณ !

 

 

์ด ๊ธ€์„ ๋ณด์‹  ๋ถ„๋“ค ๋ชจ๋‘ ์ƒˆํ•ด ๋ณต ๋งŽ์ด ๋ฐ›์œผ์„ธ์š”! ๐Ÿคธ‍โ™‚๏ธ๐Ÿคธ‍โ™‚๏ธ๐Ÿคธ‍โ™‚๏ธ

 

 

 

์ฐธ๊ณ 

https://ko.reactjs.org/docs/faq-state.html

https://www.simplilearn.com/tutorials/reactjs-tutorial/reactjs-state

https://ko.reactjs.org/docs/components-and-props.html