react

ยท react
useEffect์™€ useRef๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ Œ๋”๋ง์˜ ์ด์œ ๋ฅผ ๋ฐํž ์ˆ˜ ์žˆ์Œ. memo๋ฅผ ์‚ฌ์šฉ ์ตœํ›„์˜ ์ˆ˜๋‹จ์œผ๋กœ useMemo์‚ฌ์šฉ react developers tool์—์„œ ์ „๋ถ€๋‹ค ์ดˆ๋ก์ด๋ฉด ์ตœ์ ํ™”๊ฐ€ ๊ธ‰ํ•˜์ง€๋Š” ์•Š์Œ. ํ•˜์ง€๋งŒ ๋นจ๊ฐ„์ƒ‰์ด๋ฉด ์ตœ์ ํ™”๋ฅผ ํ•ด์•ผํ•จ
ยท react
๋ฆฌ์•กํŠธ๋กœ ๋ฐฐ์—ด์„ ๋ Œ๋”๋ง ํ•  ๋•Œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฌธ๊ตฌ๋ฅผ ๋งˆ์ฃผ์น˜์‹  ์ ์ด ์žˆ๋‚˜์š”? Warning: Each child in a list should have a unique "key" prop. ๋ธŒ๋ผ์šฐ์ € ์ฝ˜์†”์— ์ด๋Ÿฌํ•œ ๊ฒฝ๊ณ ๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋ฆฌ์•กํŠธ์—์„œ ๋ฐฐ์—ด์„ ๋ Œ๋”๋ง ํ•  ๋•Œ ๋ Œ๋”๋งํ•œ ๋ฆฌ์ŠคํŠธ๋“ค์˜ ์ถ”๊ฐ€, ์‚ฝ์ž…, ์‚ญ์ œ์˜ ๊ธฐ์ค€์„ Key Prop์„ ์ด์šฉํ•ด์„œ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ์ ์–ด์ฃผ์ง€ ์•Š์•„์„œ ๋‚˜ํƒ€๋‚˜๋Š” ์˜ค๋ฅ˜ ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด์„œ ์˜ํ™”๋ฆฌ๋ทฐ๋“ค์ด ์žˆ๋Š” ๊ฒŒ์‹œํŒ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ๊ฐ์˜ ์˜ํ™” ๋ฆฌ๋ทฐ๋“ค์„ ๋ Œ๋”๋ง ํ•˜๋Š”๋ฐ ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ๋ Œ๋”๋ง ํ•  ์ˆ˜ ์žˆ๊ฒ ์ฃ ? ์ด๋•Œ key prop์„ ์ง€์ •ํ•ด์ฃผ์ง€ ์•Š๊ณ  ๋ฆฌ๋ทฐ์— ์žˆ๋Š” inputํƒœ๊ทธ ์•ˆ์— ํ…์ŠคํŠธ๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ๊ทธ ๋ฆฌ๋ทฐ๋ฅผ ์‚ญ์ œํ–ˆ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ์š”? ๋ฆฌ๋ทฐ๋Š” ์‚ญ์ œ๊ฐ€ ๋  ์ˆ˜ ์žˆ์–ด๋„ input ํƒœ๊ทธ ์•ˆ์˜ ํ…์ŠคํŠธ๋Š” ๋‹ค๋ฅธ ..
ยท react
1. UI๊ฐ€ ๋ณต์žกํ• ์ˆ˜๋ก DOM ์กฐ์ž‘์ด ๋งค์šฐ ๋ถˆํŽธํ•ด์ง„๋‹ค. ํŽ˜์ด์Šค๋ถ ๊ฐ™์ด UI๊ฐ€ ๋งŽ๊ณ  ์ด๋ฒคํŠธ๋„ ๋งŽ์€ ์›น์—์„œ๋Š” DOM ์กฐ์ž‘์ด ๋งค์šฐ ๋ณต์žกํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€๋ น ํƒœ๊ทธ๋ฅผ ๋งŒ๋“ค๊ณ  ๊ทธ ์•ˆ์— ์ปจํ…์ธ ์™€ ํด๋ž˜์Šค ์ด๋ฆ„์„ ๋„ฃ๋Š”๋‹ค๊ณ  ํ•˜๋ฉด ๋ฒŒ์จ ์ฝ”๋“œ๊ฐ€ 3์ค„ ์ด์ƒ์ž…๋‹ˆ๋‹ค. ํ”ํžˆ ๋ช…๋ นํ˜• ๋ฐฉ์‹์ด๋ผ๊ณ  ํ•˜์ฃ . ํ•˜์ง€๋งŒ ๋ฆฌ์•กํŠธ๋Š” ์ปดํฌ๋„ŒํŠธ๋กœ ์„ ์–ธ์ ์œผ๋กœ ์ž‘์„ฑํ•˜์—ฌ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ํ›จ์”ฌ ์‰ฝ์Šต๋‹ˆ๋‹ค. 2. SPA 1๋ฒˆ์˜ ์—ฐ์žฅ์„ ์œผ๋กœ์„œ SPA๋ฅผ ์“ฐ๋ฉด DOM์กฐ์ž‘์ด ๋งค์šฐ ๋นˆ๋ฒˆํ•˜๊ฒŒ ์ผ์–ด๋‚˜๋Š”๋ฐ ์ด๋•Œ ๋ฐ”๋‹๋ผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ด์šฉํ•ด ๊ตฌํ˜„ํ•˜์—ฌ ๋งค์šฐ ๋ณต์žกํ•ด์ง‘๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฆฌ์•กํŠธ๋กœ ์‰ฝ๊ฒŒ SPA๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 3. ์ œ๋กœ์ดˆ๊ฐ•์˜๋ฅผ ์ฐธ๊ณ ํ•˜์ž๋ฉด ํŽ˜์ด์Šค๋ถ ์›น์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”๊ฟจ๋”๋‹ˆ ์ ์šฉ์ด ์•ˆ๋˜๋Š” ๋ถ€๋ถ„์ด ์žˆ์—ˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด ๋‹‰๋„ค์ž„์„ ๋ฐ”๊ฟจ๋Š”๋ฐ ๋‚ด ํ”„๋กœํ•„์—๋Š” ์ œ๋Œ€๋กœ ๋ณ€๊ฒฝ๋œ ๋‹‰๋„ค์ž„์ด ๋ณด์—ฌ์ง€๊ณ  ..
ยท react
์‹œ์ค‘์— ๋งŽ์€ ๋ฆฌ์•กํŠธ ๊ฐ•์˜๋“ค์˜ ๋Œ€๋ถ€๋ถ„์€ CRA๋ถ€ํ„ฐ ์‚ฌ์šฉํ•˜์—ฌ webpack์— ๋Œ€ํ•œ ์„ค์ •๊ณผ ๋ฐ”๋ฒจ์˜ ๋Œ€ํ•œ ์„ค์ •์„ ๊ฐ€๋ฅด์น˜์ง€ ์•Š๊ณ  ๋ฐ”๋กœ ๋ฆฌ์•กํŠธ์˜ ํ•ต์‹ฌ ๊ธฐ๋Šฅ๋“ค์„ ์„ค๋ช…ํ•œ๋‹ค. ๋‚˜๋Š” ์ฒ˜์Œ์— ์ด๋Ÿฌํ•œ ๊ฐ•์˜์— ๋ถˆ๋งŒ์„ ๋Š๊ผˆ๊ณ  ํ˜ผ์ž ๊ตฌ๊ธ€์—์„œ CRA์—†์ด ๋ฆฌ์•กํŠธ ํ”„๋กœ์ ํŠธ ๋งŒ๋“œ๋Š” ๋ฒ•์„ ์ฐพ์•˜์—ˆ๋‹ค. ์ด๋Ÿฐ ๊ฐ•์˜๋“ค์€ ๊ทธ์ € ๋ฆฌ์•กํŠธ์˜ ๊ธฐ๋Šฅ๋“ค์„ ๋‚˜์—ดํ•˜์—ฌ ๊ฐ€๋ฅด์น˜๊ฒ ๋‹ค๋Š” ๊ฑฐ๊ณ  ๊ทธ๋ ‡๋‹ค ๋ณด๋‹ˆ ๊ฐ•์˜๋ฅผ ๋“ค์—ˆ๋‹ค ํ• ์ง€๋ผ๋„ ์ฐจํ›„์— ๊ฐ•์˜๋ฅผ ๋ณด๊ณ  ์–ป์€ ์ง€์‹์œผ๋กœ ๋งŒ๋“  ํ”„๋กœ์ ํŠธ์˜ ํ€„๋ฆฌํ‹ฐ๊ฐ€ (์‹ฌํ•˜๊ฒŒ ๋งํ•˜์ž๋ฉด)๋งค์šฐ ๊ตฌ๋ ธ๋‹ค. ๊ทธ๋ฆฌ๊ณ .. ๊ทธ๊ฑด ๋ฐ”๋กœ ๊ธฐ๋ณธ์„ ์•ˆ ๋‹ค์ ธ์„œ ๊ทธ๋ ‡๋‹ค. ๋ฆฌ์•กํŠธ์—์„œ state๊ฐ€ ๋ญ”์ง€ ์ œ๋Œ€๋กœ ์ดํ•ดํ•ด์•ผ ํ•˜๋Š”๋ฐ ๋‹จ์ˆœ ๊ธฐ๋Šฅ๋งŒ์„ ์„ค๋ช…ํ•˜๋Š” ๊ฐ•์˜์—์„œ๋Š” ๊ทธ๋Ÿฐ ์ข…๋ฅ˜์˜ ์Šต๋“์€ ๋ถˆ๊ฐ€๋Šฅ ํ•˜๋‹ค. ๊ทธ ์™€์ค‘์— ๋‚˜๋Š” ์ œ๋กœ์ดˆ๊ฐ•์˜๋ฅผ ์•Œ๊ฒŒ๋˜์—ˆ๋‹ค ์›นํŒฉ ์„ค์ •์„ ๊ฐ€๋ฅด์นœ๋‹ค๋‹ˆ!! ์—ฌ๊ธฐ์„œ ๋ถ€ํ„ฐ ๋‹ค๋ฅธ ๊ฐ•์˜..
ยท react
npm init react-app . ์œ„์™€ ๊ฐ™์ด ํ„ฐ๋ฏธ๋„์— ์ž…๋ ฅํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ ' . " ์€ ํ˜„์žฌ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. create-react-app ์„ ์„ค์น˜ํ•  ๊ฑฐ๋ƒ๊ณ  ๋ฌผ์–ด๋ณธ๋‹ค. y๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๋œ๋‹ค. ์ด ๊ณผ์ •์„ ๋๋‚ด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์—ฌ๋Ÿฌ ํด๋” ๋ฐ ํŒŒ์ผ๋“ค์ด ์ž๋™์œผ๋กœ ์ƒ๊ธด๋‹ค.
ยท react
1. npm run build ์‹คํ–‰!! 2. ์•„๋ž˜์™€ ๊ฐ™์ด package.json ์— ์ถ”๊ฐ€ ์œ„์—์„œ dist ํŒŒ์ผ์€ ์ง€์ •ํ•ด์ค€ build ํด๋”์˜ ๊ฒฝ๋กœ 3. github pages ์„ค์น˜ npm install gh-pages --save-dev 4. ๋‹ค์‹œ package.json ์ถ”๊ฐ€ "deploy": "gh-pages -d build" ๋‚˜์˜ ๊ฒฝ์šฐ๋Š” build๋ฅผ dist๋กœ ๋ฐ”๊พธ์—ˆ๋‹ค. 5. npm run deploy ์‹คํ–‰ npm run deploy 6. ์œ„์™€ ๊ฐ™์ด gh-pages๊ฐ€ ๋งŒ๋“ค์–ด์กŒ์œผ๋‹ˆ pages์—์„œ gh-pages ๋ธŒ๋Ÿฐ์น˜๋ฅผ ์„ ํƒ! 7. ํ˜ธ์ŠคํŒ… ์™„๋ฃŒ!! 8. reference https://velog.io/@heony/gh-pages gh-pages๋กœ ๋‚ด React ์›น์‚ฌ์ดํŠธ ๋ฐฐํฌํ•˜๊ธฐ GitHub ๋ ˆํฌ์ง€ํ† ๋ฆฌ์˜ ..
ยท react
1. ๋ฆฌ์•กํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์€ ํ”„๋กœ์ ํŠธ์˜ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ๋“ค์–ด๊ฐ„๋‹ค. 2. ์•„๋ž˜์˜ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ๋…ธ๋“œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑ-์ดˆ๊ธฐํ™” ํ•˜๋ฉฐ package.json์„ ๋งŒ๋“ ๋‹ค npm init -y 3. JSX ์ปดํŒŒ์ผ์„ ์œ„ํ•œ Babel์„ ์„ค์น˜ํ•œ๋‹ค. npm install --save-dev @babel/core babel-loader @babel/cli @babel/preset-env @babel/preset-react babel-loader๋Š” ์›นํŒฉ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์šดํ•ด์ค€๋‹ค. 4. Webpack ์„ค์น˜ npm install --save-dev webpack webpack-cli webpack-dev-server 5. htmlWebpackPlugin ์„ค์น˜ npm install --save-dev html-webpack-plu..
๊น€ํƒœ์ง„
'react' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (2 Page)