๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก๐Ÿ“š Language & CS knowledge/React (13)

Daehyunii's Dev-blog

React, useEffect, useRef, props

React๋ž€? 1. React ์†Œ๊ฐœ ๋ฆฌ์•กํŠธ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค. ๋ฆฌ์•กํŠธ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ธฐ๋Šฅ๋“ค์€ ์ตœ์†Œํ•œ์˜ ๋…ธ๋ ฅ์œผ๋กœ ์ตœ๋Œ€์˜ ํšจ์œจ์„ ๋‚ด๊ธฐ ์œ„ํ•จ์ด๋‹ค. 2. React ํŠน์ง• Reactive Programming์ด๋‹ค. React๋Š” ์ƒํƒœ๋ฅผ ๊ด€์ฐฐํ•˜๊ณ  ๋ณ€ํ™”๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ ์—ฐ๊ด€๋œ ๊ณณ์—์„œ ์—ฐ์‚ฐ์ด ์ˆ˜ํ–‰๋œ๋‹ค. MVC์—์„œ ๋ฆฌ์•กํŠธ๋Š” V๋งŒ ๊ด€๋ฆฌํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ View๋Š” ์ปดํฌ๋„ŒํŠธ์ด๋‹ค. ์ปดํฌ๋„ŒํŠธ๋Š” ์žฌ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•œ ๋…๋ฆฝ์ ์ธ ๊ฐ์ฒด์ด๋ฉฐ ๋Ÿฐํƒ€์ž„ ์‹œ์ ์— ์‚ฌ์šฉ๋œ๋‹ค. ์ปดํฌ๋„ŒํŠธ๋Š” ํŠธ๋ฆฌ ๊ตฌ์กฐ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ์ปดํฌ๋„ŒํŠธ ์กฐํ•ฉ์œผ๋กœ View๋ฅผ ๊ตฌ์„ฑํ•œ๋‹ค. Virtual DOM์ด๋‹ค. ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ํ•œ ๋ฒˆ์— ๋ Œ๋”๋งํ•œ๋‹ค. ์„ฑ๋Šฅ๋ณด๋‹ค๋Š” ๊ฐœ๋ฐœ์„ ์‰ฝ๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜์—ˆ๋‹ค. 2. create-react-app, JSX 2.1 create-react-app ์ƒˆ๋กœ์šด ๋ฆฌ์•กํŠธ ์•ฑ์„ ๋งŒ..

classํ˜• ์ปดํฌ๋„ŒํŠธ - shouldComponentUpdate( )

shouldComponentUpdate ๋ผ์ดํ”„ ์‚ฌ์ดํด ๋ฉ”์„œ๋“œ ๋ Œ๋”๋ง์‹œ state, props์˜ ๋ณ€๊ฒฝ์ด ์žˆ๋Š” ๊ฒฝ์šฐ์—๋งŒ ๋ Œ๋”๋ง ๋  ์ˆ˜ ์žˆ๋„๋กํ•˜๋Š” ์ตœ์ ํ™”์— ์œ ์šฉํ•œ ๋ฉ”์„œ๋“œ์ด๋‹ค. ์•„๋ž˜์˜ ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด click๋ฒ„ํŠผ์ด ์žˆ๋Š” ํ•˜๋‚˜์˜ ํ…Œ์ŠคํŠธ์šฉ ์ปดํฌ๋„ŒํŠธ์ด๋‹ค. click ์ด๋ฒคํŠธ๋ฅผ ๋„ฃ์–ด์คฌ์ง€๋งŒ click์„ ์—ฌ๋Ÿฌ๋ฒˆ ๋ˆ„๋ฅด๋”๋ผ๋„ ๊ณ„์†ํ•ด์„œ ๋™์ผํ•˜๊ฒŒ ๋นˆ ๊ฐ์ฒด๋กœ setStateํ•˜๊ธฐ ๋•Œ๋ฌธ์— state๋Š” ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š”๋‹ค. ์ฆ‰ ์—ฌ๋Ÿฌ๋ฒˆ์˜ click์—๋„ state๋Š” ๋ฐ”๋€Œ๋Š” ๊ฒƒ์ด ์—†๋‹ค. ๋ฆฌ์•กํŠธ์˜ ํ•ต์‹ฌ์€ '์ƒํƒœ๊ฐ€ ๋ณ€ํ™”ํ•˜๋ฉด ์ƒˆ๋กญ๊ฒŒ ๊ทธ๋ฆฐ๋‹ค!' ๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๋ฆฌ์•กํŠธ์—์„œ ๋ฆฌ๋ Œ๋”๋ง์ด ๋ฐœ์ƒํ•˜๋Š” ์ด์œ ๋Š” ํฌ๊ฒŒ 3๊ฐ€์ง€ ์ด๋‹ค. state๊ฐ€ ๋ณ€ํ•˜๊ฑฐ๋‚˜, props๊ฐ€ ๋ณ€ํ•˜๊ฑฐ๋‚˜, ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ฆฌ๋ Œ๋”๋ง๋˜๋ฉด ์ž์‹ ์ปดํฌ๋„ŒํŠธ๋„ ๊ฐ™์ด ๋ฆฌ๋ Œ๋”๋ง๋˜๋Š” ๊ฒฝ์šฐ 3๊ฐ€์ง€ ์ด๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด..