Input + Output = True

์–‘๋ฐฉํ–ฅ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ ๋ณธ๋ฌธ

๐ŸŽจFrontEnd/React

์–‘๋ฐฉํ–ฅ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ

IOTrue 2022. 12. 28. 10:52

๐Ÿ˜Ž ์–‘๋ฐฉํ–ฅ ๋ฐ”์ธ๋”ฉ์ด๋ž€?

์–‘๋ฐฉํ–ฅ ๋ฐ”์ธ๋”ฉ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋ฆฌ๋ Œ๋”๋ง์ด ์–ด๋–ป๊ฒŒ ์ด๋ฃจ์–ด์งˆ ์ง€ ๊ทธ๋ ค๋ณด์„ธ์š”.

(๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ A์™€ ์ž์‹ ์ปดํฌ๋„ŒํŠธ B๊ฐ€ ์žˆ์Œ์„ ๊ฐ€์ •ํ•˜๊ณ  ๊ทธ๋ ค๋ด…์‹œ๋‹ค.)

๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ
ํ™”๋ฉด์— ๋ณด์ด๋Š” ๋ฐ์ดํ„ฐ์™€ ๋ธŒ๋ผ์šฐ์ € ๋ฉ”๋ชจ๋ฆฌ์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ผ์น˜์‹œํ‚ค๋Š” ๊ฒƒ
ex) js ๋ฐ์ดํ„ฐ ๊ฐ’ ๋ณ€๊ฒฝ → HTML์— ๋ณ€๊ฒฝ๋œ ๊ฐ’ ์ถœ๋ ฅ

 

๋‹จ๋ฐฉํ–ฅ: ๋ชจ๋ธ์ด ๊ฐ€์ง„ ๊ฐ’์„ ๋ทฐ์— ๋ณด์—ฌ์ฃผ๊ณ , ๋ทฐ์—์„œ ๋ชจ๋ธ์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Œ
์–‘๋ฐฉํ–ฅ: ๋ชจ๋ธ์ด ๊ฐ€์ง„ ๊ฐ’์„ ๋ทฐ์— ๋ฐ”์ธ๋”ฉ ํ•ด์ฃผ๊ณ , ๋ทฐ์—์„œ ๋ชจ๋ธ์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Œ

๋‹จ๋ฐฉํ–ฅ ๋ฐ”์ธ๋”ฉ, ์–‘๋ฐฉํ–ฅ ๋ฐ”์ธ๋”ฉ ํ๋ฆ„

 

๋ฆฌ์•กํŠธ๋Š” ๋‹จ๋ฐฉํ–ฅ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ์„ ํ•˜๋ฏ€๋กœ, ์ด๋ฒคํŠธ๋ฅผ ํ†ตํ•ด ๋‹ค์‹œ ํ™”๋ฉด์— ๋ฟŒ๋ ค์ฃผ๋Š” ๊ณผ์ •์ด ํ•„์š”ํ•จ

 

์ž์‹ ์ปดํฌ๋„ŒํŠธ B์—์„œ ์ด๋ฒคํŠธ๋ฅผ ํ†ตํ•ด ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ A์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•  ๊ฒฝ์šฐ

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

A, B ์ปดํฌ๋„ŒํŠธ๊ฐ€ ํ•จ๊ป˜ ๋ฆฌ๋ Œ๋”๋ง ๋จ

 

๋ฆฌ์•กํŠธ ๋ผ์ดํ”„ ์‚ฌ์ดํด, ๋ฆฌ์•กํŠธ ๋ Œ๋”๋ง ์กฐ๊ฑด

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

state์˜ ๋ณ€๊ฒฝ
setState ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด ๋ฆฌ์•กํŠธ๋Š” ๋ณ€๊ฒฝ์„ ๊ฐ์ง€ํ•˜๊ณ  ๋ฆฌ๋ Œ๋”๋ง์„ ํ•จ

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

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

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

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

forceUpdate์˜ ์‹คํ–‰

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

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

 

๐Ÿ’ก ์˜ค๋Š˜์˜ ๊ฒฐ๋ก 

๋ฆฌ์•กํŠธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‹จ๋ฐฉํ–ฅ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ์„ ํ•˜๊ณ ,

์–‘๋ฐฉํ–ฅ ๋ฐ”์ธ๋”ฉ์„ ํ•˜๊ธฐ ์œ„ํ•ด์„  ์ด๋ฒคํŠธ ๋“ฑ์„ ์‚ฌ์šฉํ•˜๊ณ ,

๊ทธ ๊ณผ์ •์—์„œ ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ์˜ ์—…๋ฐ์ดํŠธ๋กœ ์ธํ•ด ๋ฆฌ๋ Œ๋”๋ง ๋˜๋ฉด

์ž์‹ ์ปดํฌ๋„ŒํŠธ๋„ ํ•จ๊ป˜ ๋ฆฌ๋ Œ๋”๋ง ๋œ๋‹ค.

๋ฐฐ์šธ๊ฒŒ ๋งŽ์€ ๋ฆฌ์•กํŠธ

 

 

 

์ฐธ๊ณ 

https://felixgerschau.com/react-rerender-components/

https://pt.slideshare.net/miladiir/angular-js-42828566/7?smtNoRedir=1

 

 

 

Comments