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

WEB/REACT23

[React] LifeCycle (๋ผ์ดํ”„์‚ฌ์ดํด, ์ƒ๋ช…์ฃผ๊ธฐ) ์›น์„ ๊ณต๋ถ€ํ•˜๋‹ค๋ณด๋ฉด ๋น ์งˆ ์ˆ˜ ์—†๋Š”๊ฒŒ ๋˜ ๋ฐ”๋กœ ๋ผ์ดํ”„์‚ฌ์ดํด์ด๋‹ค. ์ง€๊ธˆ๊นŒ์ง€ ๋‚˜๋Š” ๋ผ์ดํ”„ ์‚ฌ์ดํด ๊ฐœ๋…๋งŒ ๊ณต๋ถ€๋ฅผ ํ•ด์„œ ์ •ํ™•ํ•˜๊ฒŒ ์–ด๋””์— ์“ฐ์ด๊ณ  ๋‚ด๊ฐ€ ์‚ฌ์šฉํ•˜๋ฉด์„œ๋„ ์ด๊ฒŒ ๋ผ์ดํ”„์‚ฌ์ดํด์ด ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉ๋˜๋Š”์ง€์กฐ์ฐจ ์ •ํ™•ํ•˜๊ฒŒ ์•Œ์ง€ ๋ชปํ•˜๊ณ  ๋„˜์–ด๊ฐ”์—ˆ๋Š”๋ฐ ์ด๋ฒˆ ๊ธฐํšŒ๋ฅผ ํ†ตํ•ด ์ •ํ™•ํžˆ ์งš๊ณ  ๋„˜์–ด๊ฐ€๋ ค๊ณ  ํ•œ๋‹ค. ์ผ๋‹จ, ๊ตฌ๊ธ€์— react lifecycle์ด๋ผ๊ณ  ์น˜๋ฉด ํ•ญ์ƒ ๋‚˜์˜ค๋Š” ๊ทธ๋ฆผ์ด ์žˆ๋‹ค. mount๋ถ€ํ„ฐ unmount๊นŒ์ง€ ์ขŒ๋ฅด๋ฅต ์žˆ๋Š” ์‚ฌ์ง„์ด๋‹ค. ๋‚˜๋Š” ๊ทธ๋ƒฅ ์ด๊ฒƒ๋งŒ ๊ณต๋ถ€ํ•˜๊ณ  ์•Œ๊ณ ์žˆ์—ˆ๋‹ค. ๊ทผ๋ฐ ์™œ ๋ผ์ดํ”„์‚ฌ์ดํด์— ๋Œ€ํ•ด์„œ ์•Œ์•„์•ผํ•˜๋Š”์ง€ ๊ทผ๋ณธ์ ์ธ ๋ถ€๋ถ„์— ๋Œ€ํ•ด ๋ถ€์กฑํ•˜๋‹ค๊ณ  ๋Š๊ปด์„œ ์ด๋ฒˆ์—” ๊ทธ ๋ถ€๋ถ„์„ ์ข€ ๋” ์ž์„ธํžˆ ์•Œ์•„๋ณด๋„๋ก ํ•ด์•ผ๊ฒ ๋‹ค! ๋ผ์ดํ”„์‚ฌ์ดํด์ด๋ž€? ๋ผ์ดํ”„ ์‚ฌ์ดํด์€ ๊ฐ„๋‹จํžˆ ์›Œ๋”ฉ๋งŒ ๋ณด๋”๋ผ๋„ 'ํ•œ ํ™”๋ฉด์ด ์ƒ์„ฑ๋˜๊ณ  ์‚ฌ๋ผ์ง€๊ธฐ๊นŒ์ง€์˜ ๊ณผ์ •'์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์™œ ๋ผ์ด.. 2021. 7. 5.
[React] Rerendering(๋ฆฌ๋ Œ๋”๋ง) ๋ฆฌ์•กํŠธ๋ฅผ ๊ณต๋ถ€ํ•˜๋‹ค๋ณด๋ฉด, ํšจ์œจ์„ฑ์ด๋ผ๋Š” ๋‹จ์–ด๋ฅผ ๋นผ๋†“์„ ์ˆ˜๊ฐ€ ์—†๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ์ €๋ฒˆ์— ์ •๋ฆฌํ–ˆ๋˜ DOM์—์„œ์˜ ๊ฐ€์ƒ ๋”๋„ ๊ทธ๋ ‡๊ณ , ์–ด๋–ค ํ•œ ๊ฐœ๋…์„ ๊ณต๋ถ€ํ•  ๋•Œ๋งˆ๋‹ค ๊ทธ ๊ฐœ๋…์ด ํšจ์œจ์ ์ด๊ฒŒ ๋„์™€์ค€๋‹ค๊ณ  ํ•˜๋Š” ๊ฒƒ์ด ๋งŽ๋‹ค๋Š”๊ฒƒ์ด๋‹ค. ๋‚˜๋Š” ์ „์— ์ด๋Ÿฐ ์งˆ๋ฌธ์„ ๋ฐ›์€ ์ ์ด ์žˆ๋‹ค. '๋ฆฌ๋ Œ๋”๋ง์ด ๋ญ”์ง€ ์•„์‹œ๋‚˜์š”?' ์ด ๊ธ€์„ ๋ณด๋Š” ์—ฌ๋Ÿฌ๋ถ„๋“ค์€ ๋ฌด์Šจ ๋Œ€๋‹ต์„ ํ•˜๊ฒ ๋Š”๊ฐ€? ๋‚˜๋Š” ๊ทธ๋•Œ๋Š” ๋ถ€๋„๋Ÿฝ์ง€๋งŒ ๋ฆฌ๋ Œ๋”๋ง์ด ๊ทธ๋ƒฅ ๋ Œ๋”๋ง์„ ๋‹ค์‹œํ•œ๋‹ค๋Š” ๊ฑฐ ์•„๋‹Œ๊ฐ€? ์ด๋ ‡๊ฒŒ ์ƒ๊ฐํ–ˆ์—ˆ๋‹ค. ์‚ฌ์‹ค ๋ง ๋œป์€ ๊ทธ๋ ‡๋‹ค. ํ•˜์ง€๋งŒ, ์งˆ๋ฌธ์˜ ์˜๋„๊ฐ€ ๊ณผ์—ฐ ์ง„์งœ ๋œป์„ ๋ฌผ์–ด๋ณด๋Š” ๊ฒƒ์ด์—ˆ์„๊นŒ? ์ด๋•Œ ๋ชจ๋“  ์งˆ๋ฌธ์— ๋‹ต์„ ๊ฐœ๋–ก๊ฐ™์ด ํ•œ ๋‚˜๋Š” ์ง‘์— ์™€์„œ ์ฐจ๋ถ„ํžˆ ๋‹ค ์ ์–ด๋†จ์—ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‹ค์‹œ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ์ฑ„์›Œ๋‚˜๊ฐ€๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค. ๋ฆฌ๋ Œ๋”๋ง์€ ๋ฌด์—‡์ธ์ง€ ๊ทผ๋ณธ๋ถ€ํ„ฐ ์•Œ์•„์•ผํ•˜๋ฉฐ, ์™œ ์ด๊ฑธ ์•Œ์•„์•ผํ•˜๋Š”์ง€, ์–ด๋””์—์„œ ์ด ๊ฐœ๋…์ด ์“ฐ์ด๋Š”.. 2021. 6. 24.
[React] ContextAPI๋ฅผ ์‚ฌ์šฉํ•ด์„œ TodoList๋งŒ๋“ค๊ธฐ(2) : contextAPI contextAPI์— ๋Œ€ํ•ด์„œ๋Š” ์ฑ… ๐Ÿ“–๋ฆฌ์•กํŠธ๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ธฐ์ˆ ๐Ÿ“–์—์„œ๋„ ๋‹ค๋ค˜์ง€๋งŒ ๊ฒ‰์œผ๋กœ๋Š” ์ดํ•ดํ–ˆ์ง€๋งŒ, ๋ชธ๊ณผ ๋งˆ์Œ ์ „์ฒด์ ์œผ๋กœ ์•„์ง ์ดํ•ด๋ฅผ ๋ชปํ•˜๊ณ  ๊นจ๋‹ซ์ง€ ๋ชปํ–ˆ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์–ด์„œ contextAPI๋ฅผ ์‚ฌ์šฉํ•œ ์˜ˆ์ œ์ธ ํˆฌ๋‘๋ฆฌ์ŠคํŠธ๋ฅผ ์ฐพ์•„์„œ ๋‹ค์‹œํ•ด๋ณด๊ฒŒ ๋˜์—ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŠธ๋ฅผ ์“ฐ๋ฉด์„œ ์ •ํ•œ ๋‚ด ๋ชฉํ‘œ๋Š” ์ด ํฌ์ŠคํŠธ๋ฅผ ์“ฐ๋ฉด์„œ ๋‹ค ์“ฐ๊ณ  ๋‚˜์„œ๋Š” ๋‚ด๊ฐ€ contextAPI๊ฐ€ ๋ญ”์ง€ ์ œ๋Œ€๋กœ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๊ณ  ์•Œ ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋‹ค. ์ด์ „ ํฌ์ŠคํŠธ๋Š” ์ด ํˆฌ๋‘๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค๋ฉด์„œ ์‚ฌ์šฉํ•œ styled-components์— ๋Œ€ํ•œ ์š”์†Œ๋“ค์„ ๊ณต๋ถ€ํ•ด๋ณธ ํฌ์ŠคํŠธ์ด๋‹ค. minjoo-space.tistory.com/56 [React] ContextAPI๋ฅผ ์‚ฌ์šฉํ•ด์„œ TodoList๋งŒ๋“ค๊ธฐ(1) : styled-components ๋ฆฌ์•กํŠธ๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ธฐ์ˆ ์—์„œ๋Š” ํˆฌ๋‘๋ฆฌ์ŠคํŠธ๋ฅผ.. 2021. 2. 9.
[React] BrowserRouter VS HashRouter BrowserRouter VS HashRouter ๊ฐ•์˜์—์„œ๋„ ๊ทธ๋ ‡๊ณ  ์ฑ…์—์„œ๋„ ๊ทธ๋ ‡๊ณ  ๋ผ์šฐํ„ฐ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ด๋•Œ๋Š” ์ด ๋ผ์šฐํ„ฐ๊ฐ€ ์ข€ ๋” ํšจ์œจ์ ์ด๊ณ ,,,์ด๋Ÿฐ ๋ง๋“ค์ด ๋งŽ์•˜๋‹ค. ๋‚˜๋Š” ์ด ์„ค๋ช…๋“ค์ด ํ•œ ๋ฒˆ์— ์ดํ•ด๊ฐ€ ์•ˆ๊ฐ”๊ธฐ ๋•Œ๋ฌธ์— ๋ผ์šฐํ„ฐ์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ๋งˆ์Œ์„ ๋จน์—ˆ๋‹ค. ์ผ๋‹จ ์ด ๋ฌด๋น„ ์›น์„ ๋งŒ๋“œ๋Š”๋ฐ ๋น„๊ตํ–ˆ์—ˆ๋˜ ๋ผ์šฐํ„ฐ๋Š” BrowserRouter์™€ HashRouter ์ด ๋‘ ๊ฐœ์ด๋‹ค. ๊ทธ๋ž˜์„œ ์ด ๋‘๊ฐœ๋ฅผ ๋จผ์ € ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•˜๋Š”๋ฐ ์ด ์‚ฌ์ดํŠธ๋ฅผ ์ฐธ๊ณ ํ•ด์„œ ์ž‘์„ฑํ•ด๋ณด์•˜๋‹ค. ์œ„์˜ ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด์„œ ์„ค๋ช…์„ ํ•ด๋ณด๋ ค๊ณ ํ•œ๋‹ค. Router ๋ผ์šฐํ„ฐ์—๋Š” ๊ธฐ๋ณธ์ ์ธ ๋ผ์šฐํŒ… ์†์„ฑ๋“ค๋งŒ ์ •์˜๋˜์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์•„๋ž˜์ฒ˜๋Ÿผ 5๊ฐ€์ง€ ๋ผ์šฐํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค. BrowserRouter HashRouter MemoryRouter NativeRouter StaticRoute.. 2021. 2. 4.
[React] styled-components ๐Ÿ“–๋ฆฌ์•กํŠธ๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ธฐ์ˆ ๐Ÿ“–์„ ๊ณต๋ถ€ํ•˜๋‹ค๊ฐ€ 14์žฅ์—์„œ ๋‰ด์Šค๋ทฐ์–ด๋ฅผ ๋งŒ๋“œ๋Š” ๋ถ€๋ถ„์—์„œ ์ฒ˜์Œ์œผ๋กœ styled-components์— ๋Œ€ํ•œ ๋ถ€๋ถ„์ด ์–ธ๊ธ‰๋˜์—ˆ๋‹ค. ์ด ๋•๋ถ„์— ํŽ˜์ด์ง€๋Š” ์ด์˜๊ฒŒ ์™„์„ฑ๋˜์—ˆ์ง€๋งŒ ์™œ css, sass(scss)๋ฅผ ์ด์šฉํ•˜์ง€์•Š๊ณ  styled-components๋ฅผ ์‚ฌ์šฉํ•œ ๊ฒƒ์ผ๊นŒ? ์ด๋Ÿฐ ๊ถ๊ธˆ์ฆ์„ ์–ป๊ฒŒ ๋˜์–ด ๋‚˜๋Š” ๋‹ค์‹œ ๊ตฌ๊ธ€๋ง์„ ์‹œ์ž‘ํ–ˆ๋‹ค. ๊ตฌ๊ธ€์— "styled-components"๋ฅผ ์ณ๋ณด์•˜๋”๋‹ˆ ์ด ์›น์‚ฌ์ดํŠธ๊ฐ€ ๋–ด๋‹ค. ์Šคํƒ€์ผ๋“œ ์ปดํฌ๋„ŒํŠธ์˜ ๊ณต์‹ ์›น์‚ฌ์ดํŠธ์ธ๊ฐ€ ๋ณด๋‹ค. ์ด ์‚ฌ์ดํŠธ์— ๋”ฑ ์ฒ˜์Œ์— ๋“ค์–ด๊ฐ€์ž๋งˆ์ž ๋ณด๋ฉด ์ด๋ ‡๊ฒŒ ์“ฐ์—ฌ์ ธ์žˆ๋‹ค. Visual primitives for the component age? ์ผ๋‹จ ๋ญ ๋น„์ฃผ์–ผ์ ์œผ๋กœ ๋„์™€์ค€๋‹ค๋Š” ์†Œ๋ฆฌ๊ฐ™๋‹ค Use the best bits of ES6 and CSS to style you.. 2021. 2. 3.
[React] ์˜ํ™” ์›น ์˜ค๋Š˜์€ ๋‚ด๊ฐ€ ๋ช‡์ผ ์ „์— ๋งŒ๋“  ์˜ํ™” ์›น์„ ๋งŒ๋“ค๋ฉด์„œ ์ „๋ฐ˜์ ์œผ๋กœ ์ผ๋˜ ๊ธฐ์ˆ ?๋“ค์„ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ ํ•œ๋‹ค. ์ด ํ”„๋กœ์ ํŠธ๋Š” ๋…ธ๋งˆ๋“œ ์ฝ”๋”๋‹˜์˜ ๊ฐ•์˜๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ํ–ˆ์œผ๋ฉฐ, ์ „์ฒด์ ์œผ๋กœ๋Š” ๊ฒฐ๊ณผ๋ฌผ์ด ๋น„์Šทํ•˜๋‚˜ ๋ˆ„๋ฅด๋ฉด ์ค„๊ฑฐ๋ฆฌ๋งŒ ๋‚˜์˜ค๋Š” ํ™”๋ฉด์ด ๋‚˜์˜ค๋Š” ๊ฒƒ๊ณผ Aboutํ™”๋ฉด์˜ css๋“ฑ ์ž์ž˜ํ•˜๊ฒŒ๋งŒ ์‘์šฉ์„ ํ•ด์„œ ์ˆ˜์ •์„ ํ–ˆ๋‹ค. ์ด๋ฒˆ์— ์ด๋ ‡๊ฒŒ ์ „์ฒด์ ์œผ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•ด๋ณด๋‹ˆ๊นŒ ๋ฆฌ๋‹ค๊ธฐ์—์„œ ์ฑ…์œผ๋กœ๋งŒ ๋ณด๊ณ  ์˜ˆ์ œ๋ฅผ ๋”ฐ๋ผํ•˜๋ฉฐ ์ดํ•ดํ–ˆ๋˜ ๊ฒƒ ๊ทธ ์ด์ƒ์œผ๋กœ ๋งŽ์€ ๊ฒƒ์„ ๋Š๋‚„ ์ˆ˜ ์žˆ์–ด์„œ ๋„ˆ๋ฌด ์ข‹์•˜๋‹ค. ์ด ๋•Œ ์ด ๊ฐœ๋…์ด ์—ฌ๊ธฐ์— ์“ฐ์ด๋Š”๊ฑฐ๊ตฌ๋‚˜!!ํ•˜๋ฉด์„œ ๋ฐ˜๊ฐ‘๊ธฐ๋„ ํ•˜๊ณ  ์ž˜๋ชป์ดํ•ดํ–ˆ๋˜ ๋ถ€๋ถ„๋“ค์„ ๊ณ ์น  ์ˆ˜ ์žˆ์–ด์„œ ์žฌ๋ฐŒ์—ˆ๋‹ค. ์ƒˆ๋กœ ์•Œ๊ฒŒ ๋œ ๋ถ€๋ถ„ ์ค‘์— ๊นƒํ—™ ํŽ˜์ด์ง€๊ฐ€ ์žˆ์–ด์„œ ๋„ˆ๋ฌด ์‹ ๋‚˜ ํ”„๋กœ์ ํŠธ๋ฅผ ๋๋‚ด์ž๋งˆ์ž ๋ฐ”๋กœ ๋ธ”๋กœ๊ทธ ํฌ์ŠคํŒ…๋„ ํ•˜๋‚˜ ํ–ˆ์—ˆ๋‹คใ…Žใ…Ž... ๊ทธ๋ž˜์„œ ์ „์ฒด์ ์œผ๋กœ ์ •๋ฆฌํ•ด๋†“์œผ๋ฉด ๋‚˜์ค‘์— ๋ณด๊ธฐ์—๋„.. 2021. 2. 3.
๋ฐ˜์‘ํ˜•