๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ’ป DEV/React5

[React] React ์˜ ์ƒ๋ช…์ฃผ๊ธฐ(Life Cycle) ๋ž€? โœจ Life Cycle ์ด๋ž€? ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ธŒ๋ผ์šฐ์ €์ƒ์— ๋‚˜ํƒ€๋‚˜๊ณ (Mount), ์—…๋ฐ์ดํŠธ ๋˜๊ณ (Update), ์‚ฌ๋ผ์ง€๋Š” ์ผ๋ จ์˜ ๊ณผ์ •์„ ์นญํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ๊ณผ์ •์—์„œ ํ˜ธ์ถœ๋˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ Life Cycle Method ๋ผ๊ณ  ๋ถ€๋ฅด๋ฉฐ, ํด๋ž˜์Šคํ˜• ์ปดํฌ๋„ŒํŠธ์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. (ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ๋Š” React 16.8 ๋ฒ„์ „๋ถ€ํ„ฐ ๋„์ž…๋˜์—ˆ์œผ๋ฉฐ, ํ˜„์žฌ๋Š” useState ๋‚˜ useEffect๋กœ ๋”์šฑ ๋งŽ์ด ํ™œ์šฉ๋œ๋‹ค) ๊ฐ ๋‹จ๊ณ„๋ณ„๋กœ ํ˜ธ์ถœ๋˜๋Š” ๋ฉ”์„œ๋“œ์˜ ์ˆœ์„œ์™€ ์ข…๋ฅ˜๊ฐ€ ๋‹ค๋ฅด๋‹ค. โœจ 1. Mount : DOM ์— ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ๋„ฃ๋Š” ์ž‘์—… constructor: ์ปดํฌ๋„ŒํŠธ ํด๋ž˜์Šค์˜ ์ƒ์„ฑ์ž ํ•จ์ˆ˜์ด์ž, ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ ํ˜ธ์ถœ๋˜๋Š” ํ•จ์ˆ˜์ด๋‹ค. State์™€ ๋‹ค๋ฅธ ๊ฐ’๋“ค์˜ ์ดˆ๊ธฐ๊ฐ’์„ ์ง€์ •ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ๋˜ํ•œ, props ๋ฅผ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฐ›๊ณ , super(pro.. 2021. 5. 27.
[React] React ์—์„œ ์ด๋ฏธ์ง€(Image) ์ฒจ๋ถ€ํ•˜๊ธฐ โœจ Img tag ๋ž€? ์ด๋ฏธ์ง€๋ฅผ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๋Š” HTML ํƒœ๊ทธ๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ, DOM์„ ํ†ตํ•ด์„œ๋„ ์ž‘๋™ ๊ฐ€๋Šฅํ•˜๋‹ค. React ์—์„œ์˜ img ํƒœ๊ทธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ HTML ํƒœ๊ทธ์™€ ๋™์ผํ•œ attribute ๋ฅผ ๊ฐ€์ง€๋ฉฐ, class ๋งŒ className (๋ฆฌ์•กํŠธ ๋ฌธ๋ฒ•) ์œผ๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ์ง€์ •ํ•ด์ฃผ๋ฉด ๋œ๋‹ค. โœจ React ์—์„œ ์ด๋ฏธ์ง€ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ: ์›น url ์„ ํ†ตํ•ด ์ด๋ฏธ์ง€๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๊ณ ์ž ํ•œ๋‹ค๋ฉด src='###' ์•ˆ์— url ์„ ๋ฌธ์ž์—ด๋กœ ์ž‘์„ฑํ•ด์ฃผ๋ฉด ๋œ๋‹ค. ๋กœ์ปฌ ๋””๋ ‰ํ† ๋ฆฌ์— ์ €์žฅ๋˜์–ด ์žˆ๋Š” ์ด๋ฏธ์ง€๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. 1. React App ์˜ Public ํด๋” ๋‚ด์—์„œ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๋ฐฉ๋ฒ• 2. ์ƒ๋Œ€ ๊ฒฝ๋กœ์™€ import๋ฌธ์„ ํ™œ์šฉํ•˜์—ฌ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๋ฐฉ๋ฒ• โœจ 1. Public ํด๋” ๋‚ด์—์„œ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ React App ์ตœ์ดˆ ์ƒ์„ฑ ์‹œ .. 2021. 5. 9.
[React] React ์˜ ์ƒํƒœ (State) ์™€ ์ดํŽ™ํŠธ ํ›…(Effect Hook) โœจ State ๋ž€? ์ปดํฌ๋„ŒํŠธ ๋‚ด์—์„œ ๋™์ ์œผ๋กœ ๋ณ€๊ฒฝ๋˜๋Š” ๊ฐ’์ด๋‹ค. โœจ State ์˜ ํŠน์ง•์€? ์ปดํฌ๋„ŒํŠธ ๋‚ด๋ถ€์—์„œ ์ œ์–ด(๊ด€๋ฆฌ)๋œ๋‹ค. State ์—…๋ฐ์ดํŠธ๋Š” ๋น„๋™๊ธฐ์ (Asynchronous)์ด๋‹ค. DOM ์€ State ๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค re-rendering ๋˜์ง€ ์•Š์œผ๋ฉฐ, ์—ฌ๋Ÿฌ ์ฐจ๋ก€์˜ setState ๊ฐ€ ์žˆ๋‹ค๋ฉด ์ „๋ถ€ ํ†ตํ•ฉํ•˜์—ฌ ํ•œ ๋ฒˆ์— re-rendering ํ•œ๋‹ค. State ๋ฅผ props ๋กœ ์ž์‹ ์ปดํฌ๋„ŒํŠธ์— ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋‹ค. (์บก์Šํ™” ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.) โœจ State ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€? ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ์—์„œ๋Š” useState ๋ผ๋Š” ํ›…(Hook)์„ ํ†ตํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. useState ๋ฅผ ํ™œ์šฉํ•˜์—ฌ state ์˜ ์ดˆ๊ธฐ๊ฐ’์„ ์ง€์ •ํ•ด์ค„ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ดˆ๊ธฐ๊ฐ’์€ ์–ด๋– ํ•œ ์ž๋ฃŒํ˜•์ด๋“  ๋  ์ˆ˜ ์žˆ๋‹ค. (๋ฌธ์ž์—ด, ๋ฐฐ์—ด, ๊ฐ์ฒด ๋“ฑ) se.. 2021. 5. 9.
[React] React.Fragment ๋ž€? โœจ React Fragment ์˜ ๊ธฐ๋ณธ ๊ธฐ๋Šฅ ์ปดํฌ๋„ŒํŠธ์˜ ๋ฆฌํ„ด๋ฌธ ๋‚ด๋ถ€์—์„œ ๋ณ„๋„์˜ ๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๊ณ  ์—ฌ๋Ÿฌ ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ๊ทธ๋ฃนํ™”ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค. const Component = () => { return ( ) } โœจ Fragment ์˜ ํŠน์ง•์€? Key ๋ฅผ ์ „๋‹ฌํ•  ํ•„์š”๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ ๋นˆ ํƒœ๊ทธ์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. Key ๊ฐ€ ์žˆ๋‹ค๋ฉด ๋ฅผ ๋ช…์‹œํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. ์—˜๋ฆฌ๋จผํŠธ๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์•„์งˆ ๋•Œ๋Š” ์ตœ์ƒ๋‹จ๊ณผ ํ•˜๋‹จ์— Fragments์„ ์ถ”๊ฐ€ํ•ด ๊ทธ๋ฃนํ™” ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. const Component = () => { return ( // Key ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ ) } Fragment ์˜ ์žฅ์ ์€? React ๋ฌธ๋ฒ• ํŠน์„ฑ์ƒ ํ•˜๋‚˜์˜ ์ปดํฌ๋„ŒํŠธ ๋‹น ํ•˜๋‚˜์˜ ์—˜๋ฆฌ๋จผํŠธ๋งŒ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ๊ธฐ์—, ๋ฐ˜ํ™˜๋ฌธ์„ div ๋‚˜ ์—ฌํƒ€ ํƒœ๊ทธ๋กœ ์ „์ฒด ์—˜๋ฆฌ๋จผํŠธ.. 2021. 5. 9.
[React] ๋ฆฌ์ŠคํŠธ์˜ Key โœจ React ์—์„œ Key๋ž€? ์—˜๋ฆฌ๋จผํŠธ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค ๋•Œ ํฌํ•จํ•ด์•ผ ํ•˜๋Š” ํŠน์ˆ˜ํ•œ ๋ฌธ์ž์—ด ์–ดํŠธ๋ฆฌ๋ทฐํŠธ์ด๋‹ค. React๊ฐ€ ์–ด๋–ค ํ•ญ๋ชฉ์„ ๋ณ€๊ฒฝ, ์ถ”๊ฐ€ ๋˜๋Š” ์‚ญ์ œํ• ์ง€ ์‹๋ณ„ํ•˜๋Š” ๊ฒƒ์„ ๋•๋Š”๋‹ค. function NumberList(props) { return ( 1 2 3 ) } Key ์˜ ํŠน์ง•์€? ๊ณ ์œ ํ•œ ๊ฐ’์ด์–ด์•ผ ํ•˜๋ฉฐ, ํ˜•์ œ ๋…ธ๋“œ์ธ ๋‹ค๋ฅธ ์•„์ดํ…œ๊ณผ์˜ ์ค‘๋ณต๋œ ํ‚ค ๊ฐ’์€ ํ—ˆ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค. ๋˜ํ•œ, ์ปดํฌ๋„ŒํŠธ์˜ ๊ตฌ์„ฑ์š”์†Œ๋กœ ์ „๋‹ฌ๋˜์ง€ ์•Š๋Š”๋‹ค. (๋”ฐ๋ผ์„œ props ์— key ๊ฐ€ ํฌํ•จ๋˜์—ˆ๋‹ค ํ•ด๋„ props.key ๋กœ ์‚ฌ์šฉ ๋ถˆ๊ฐ€ํ•˜๋‹ค) ์ฃผ์˜ํ•  ์  ์ปดํฌ๋„ŒํŠธ ํ•˜๋‚˜๋ฅผ ์—ฌ๋Ÿฌ ์ฐจ๋ก€ ๋ฐ˜๋ณตํ•ด์„œ ๋‚˜์—ดํ•  ๊ฒฝ์šฐ ์ปดํฌ๋„ŒํŠธ ์ž์ฒด๊ฐ€ ํ•˜๋‚˜์˜ list ๊ฐ€ ๋œ๋‹ค. ์ด ๊ฒฝ์šฐ, ์ปดํฌ๋„ŒํŠธ ์ž์ฒด์˜ key ๊ฐ’์„ ๋ณ€๊ฒฝํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. function ListItem(props) { .. 2021. 5. 9.