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

๋ฐ˜์‘ํ˜•

๐Ÿ’ป Deep Wide Programming/React

(7)
[React JS] ๋ฆฌ์•กํŠธ ๊ธฐ๋ณธ ํ•™์Šต ๋ฉ”๋ชจ 1. Node, npm, npx, git ์„ค์น˜ 1.node.js ์„ค์น˜(ํ™ˆํŽ˜์ด์ง€์—์„œ. ์„ค์น˜ํ™•์ธ : node -v / npm ์„ค์น˜ํ™•์ธ : npm -v) 2. ์ฝ˜์†”์—์„œ npm install npx -g (์„ค์น˜ํ™•์ธ: npx -v) 3. VSC ์„ค์น˜(๋‹ค๋ฅธ ์ฝ”๋“œ ์—๋””ํ„ฐ ์จ๋„ ๋จ) 4. git ์„ค์น˜(์„ค์น˜ ํ™•์ธ:์ฝ˜์†”์—์„œ git --version) ๋ฆฌ์•กํŠธ ์ปดํŒŒ์ผ create-react-app ๋ฆฌ์•กํŠธ์˜ ์ฝ”๋“œ๋Š” ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์—, ์ด๊ฒƒ์„ ์…‹์—…ํ•˜๊ธฐ ์œ„ํ•ด Web pack๊ณผ Babel์„ ๋‹ค์šด๋กœ๋“œ ํ•ด์•ผํ•˜๊ณ , ์ปดํŒŒ์ผ์„ ํ•˜๋Š” ๊ทธ๋Ÿฐ ๋ณต์žกํ•˜๊ณ  ๊ท€์ฐฎ์€ ์ž‘์—…์ด ํ•„์š”ํ–ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ, ์ด์ œ๋Š” create-react-app์ด๋ผ๋Š” ๊ฑธ ํ†ตํ•ด์„œ, ํ•˜๋‚˜์˜ ๋ช…๋ น์œผ๋กœ React Web app์„ Set upํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. 1. node js np..
[์ƒํ™œ์ฝ”๋”ฉ ๋ฆฌ์•กํŠธ] ์ด๋ฒคํŠธ state ๋ณ€๊ฒฝํ•˜๊ธฐ (feat. bind ํ•จ์ˆ˜, setStateํ•จ์ˆ˜) ๐Ÿ“Œ์ด๋ฒคํŠธ ์„ค์น˜ (1); ํ…Œ์ŠคํŠธ (๋งํฌ ํด๋ฆญ์‹œ, alert์ฐฝ ๋„์šฐ๊ธฐ) ๐Ÿ“Œ์ด๋ฒคํŠธ ์„ค์น˜ (2); ๋‹ค์ŒํŽ˜์ด์ง€๋กœ ์ด๋™ ์ค‘์ง€ ๐Ÿ“Œ"mode ์„ค์ • & render ๋ถ€๋ถ„"๊ณผ "์ด๋ฒคํŠธ๋ฅผ ์„ค์น˜ํ•œ ๋ถ€๋ถ„"์„ ์—ฐ๊ฒฐํ•ด์ฃผ๋ฉด ๋œ๋‹ค. โ‡ข๐Ÿ”— ์—ฐ๊ฒฐ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ• *์ด๋ฒคํŠธ ํ•จ์ˆ˜ ์•ˆ์—์„œ 'this'์˜ ๊ฐ’์€ ์•„๋ฌด๊ฒƒ๋„ ๊ฐ€๋ฆฌํ‚ค์ง€ ์•Š๊ฒŒ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ฅ˜๊ฐ€ ๋œฌ๋‹ค.* โ‡ข ์ด๋ฒคํŠธ ํ•จ์ˆ˜ ๋ฐ”๋กœ ๋’ค์—, '.bind(this)'๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ this์˜ ๊ฐ’์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. โœš ๋˜ ํ•˜๋‚˜์˜ ์ž‘์—…์ด ํ•„์š”ํ•˜๋‹ค. ๋ฆฌ์•กํŠธ์˜ ์–ธ์–ด 'setState({})'๋กœ ๋ชจ๋“œ๋ฅผ ์ „ํ™˜ํ•ด์ฃผ์–ด์•ผ ์ž‘๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ. this.state.mode = 'Greeting'; ์œผ๋กœ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋ฆฌ์•กํŠธ ์–ธ์–ด๋กœ ๋ชจ๋“œ ์ „ํ™˜์„ ํ•ด์ฃผ๋‹ˆ, ๋น„๋กœ์†Œ ์œ„์—์„œ ์„ธํŒ…ํ•ด์ค€ greeting์˜ ๋ชจ๋“œ์˜ ๊ฐ’๋“ค๋กœ ๋กœ๋“œ๊ฐ€ ๋˜์—ˆ๋‹ค. ..
[์ƒํ™œ์ฝ”๋”ฉ ๋ฆฌ์•กํŠธ] 14. ๋ณ„๋„์˜ ํŒŒ์ผ๋กœ ์ปดํฌ๋„ŒํŠธ ์ •๋ฆฌ, 15. state 1. props : ์‚ฌ์šฉ์ž๊ฐ€ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ค‘์š”ํ•œ ๊ฒƒ์ด๊ณ , 2. state๋Š” ๊ทธ props ๊ฐ’์— ๋”ฐ๋ผ ๋‚ด๋ถ€์—์„œ ๊ตฌํ˜„์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋“ค์ด๋‹ค. : ์ข€๋” ๋‹ค์–‘ํ•œ ์ผ์„ ํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ state์˜ ๊ฐœ๋…! props๋ฅผ ๋” ์ž˜ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋  ๊ฒƒ. ์œ„์˜ ์ฝ”๋“œ ์•ˆ์— ์ปดํฌ๋„ŒํŠธ ์š”์†Œ๋“ค title, sub ๊ฐ’๋“ค์„ ์ €๋ ‡๊ฒŒ ์ ์–ด์ฃผ๋Š”๊ฒŒ ์ง€์ €๋ถ„ํ•ด์„œ ์œ„๋กœ ์ ํ•˜๊ณ  ๋”ฐ๋กœ ๋นผ์ฃผ๋ ค๊ณ  ํ•œ๋‹ค. ๊ทธ๋•Œ ํ•„์š”ํ•œ ๊ฒƒ์ด ๋ฐ”๋กœ ํ•˜๋‹จ์˜ constructor(props){ super(props); here it goes } ์ €๊ธฐ ์•ˆ์— ํ•„์š”ํ•œ ์ฝ”๋“œ๋ฅผ ๋„ฃ์–ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค. ์š”๊ธฐ ๋‹ด๊ธด ์ฝ”๋“œ๋“ค์ด ๊ฐ€์žฅ ๋จผ์ € ์‹คํ–‰๋˜๊ฒŒ ๋œ๋‹ค. ํ•˜๋‹จ์˜ ์ฝ”๋“œ์™€ ๊ฐ™์ด ์ˆ˜์ •!
[์ƒํ™œ์ฝ”๋”ฉ ๋ฆฌ์•กํŠธ] ๋ฆฌ์•กํŠธ๋ฅผ ๋„์™€์ฃผ๋Š” ํฌ๋กฌ ํ™•์žฅ์•ฑ ๋ฆฌ์•กํŠธ ๋””๋ฒจ๋กœํผ ํˆด์„ ๊น”๊ณ , ๊ธฐ์กด์— ๋งŒ๋“ค์–ด๋†จ๋˜ ์›น์˜ inspect๋กœ ๋“ค์–ด๊ฐ€๋‹ˆ, ์ƒˆ๋กœ์šด ํƒญ์ด ์ƒ์„ฑ๋˜์—ˆ๋‹ค. ์ด๊ณณ์—์„œ ์›๋ž˜๋Š” ํŒŒ์•…ํ•  ์ˆ˜ ์—†์—ˆ๋˜ ๋ฆฌ์•กํŠธ ์ฝ”๋“œ๋ฅผ ๋ฐœ๊ฒฌ๊ฐ€๋Šฅํ•ด์กŒ๋‹ค. ๋Œ€๋ฐ•!
[์ƒํ™œ์ฝ”๋”ฉ ๋ฆฌ์•กํŠธ] props๋ฅผ ์‚ฌ์šฉํ•œ ๋ฆฌํŒฉํ† ๋ง ๐Ÿ“ŒProps ๊ณต์‹๋ฌธ์„œ ์ฐธ๊ณ ! reactjs.org/docs/getting-started.html Getting Started โ€“ React A JavaScript library for building user interfaces reactjs.org ์ปดํฌ๋„ŒํŠธ ๋งŒ๋“œ๋Š” ๋ฒ•์ด๋‹ค. class Welcome extends React.Component { render() { return Hello, {this.props.name}; } } ํ•˜์ด๋ผ์ดํŠธ๋œ ๋ถ€๋ถ„์— ์ฃผ๋ชฉํ•˜์ž ๐Ÿ“Œ์ ์šฉํ•ด๋ณด๊ธฐ ๐Ÿ“Œ๋‚˜๋„ ํ•ด๋ณด์ž
[์ƒํ™œ์ฝ”๋”ฉ ๋ฆฌ์•กํŠธ] 10-11๊ฐ• ์ปดํฌ๋„ŒํŠธ ๋งŒ๋“ค๊ธฐ ๐Ÿ“Œ๋ฆฌ์•กํŠธ ๋ณธ๊ฒฉ ์‚ฌ์šฉ์—ฐ์Šต ์‹œ์ž‘ ๋ฆฌ์•กํŠธ ์—†์ด ๋งŒ๋“  html ํ™˜๊ฒฝ์„, ๋ฆฌ์•กํŠธ์˜ ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ™œ์šฉํ•ด์„œ remadeํ•˜๋„๋ก ํ•  ๊ฒƒ์ด๋‹ค. ์ด๋ ‡๊ฒŒ ์‹ฌํ”Œํ•œ html ์—ฐ์Šต ํŒŒ์ผ์„ ํ•˜๋‚˜ ๋งŒ๋“ค์–ด์ค€ ๋’ค, ๋ฆฌ์•กํŠธ์˜ src ๋””๋ ‰ํ† ๋ฆฌ์˜ App.js๋ฅผ ์—ด์–ด์ค€๋‹ค. class App extends Component { render() { return ( Hello react!! ); } } ๋ฐ”๋กœ ์ด๋ถ€๋ถ„์ด ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“œ๋Š” ์ฝ”๋“œ๋‹ค. (๋งํ•˜์ž๋ฉด ํ…œํ”Œ๋ฆฟ ๊ฐ™์€ ๊ฒƒ์œผ๋กœ ์ดํ•ดํ•˜์ž. ๊ฐ์ฒด์ง€ํ–ฅ์„ ์ดํ•ดํ•˜๋ฉด ์ข€ ๋” ์ž˜ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์—ฌ๊ธฐ์„œ๋Š” ์ผ๋‹จ ํŒจ์Šค) ๐Ÿ“Œ๋ฅผ Subject๋ผ๋Š” ์ปดํฌ๋„ŒํŠธ๋กœ ๋งŒ๋“ค๊ธฐ ๐Ÿ“Œ์ด๋•Œ, ์ฃผ์˜์‚ฌํ•ญ! 1. ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค ๋•Œ๋Š” ๋ฐ˜๋“œ์‹œ, ํ•˜๋‚˜์˜ ์ตœ์ƒ์œ„ ํƒœ๊ทธ๋งŒ์„ ํฌํ•จํ•ด์•ผ ํ•œ๋‹ค. 2. ์ปดํฌ๋„ŒํŠธ ์ด๋ฆ„์€ ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•œ๋‹ค. ์‹ค์ œ App.js์—๋Š” ํƒœ๊ทธ..
[์ƒํ™œ์ฝ”๋”ฉ ๋ฆฌ์•กํŠธ] 1-7๊ฐ• ๋ฆฌ์•กํŠธ ๊ธฐ๋ณธ, ๊ณต๋ถ€์ „๋žต, ํ•™์Šตํ™˜๊ฒฝ ์„ค์ • 1. ๋ฆฌ์•กํŠธ- ์ปดํฌ๋„ŒํŠธ๊ธฐ๋Šฅ 1) ๊ฐ€๋…์„ฑ์„ ๋†’์—ฌ์คŒ 2) ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์—ฌ์คŒ 3) ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ํ›จ์”ฌ ๋” ํŽธ๋ฆฌํ•ด์ง 2. ๋ฆฌ์•กํŠธ ๊ณต๋ถ€ ์ „๋žต ๐Ÿ“Œ๊ณต๋ถ€ Tip ๋ฆฌ์•กํŠธ ๊ณต์‹๋ฌธ์„œ์™€ ์นœํ•ด์ง€๊ธฐ * reactjs.org * 3. ๋ฆฌ์•กํŠธ ํ•™์Šตํ™˜๊ฒฝ ์ฝ”๋“œ์ƒŒ๋“œ๋ฐ•์Šค๋ฅผ ์ด์šฉํ•ด ๊ฐ„ํŽธํ•œ ๋ฆฌ์•กํŠธ ํ•™์Šตํ™˜๊ฒฝ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. codesandbox.io/s/new React - CodeSandbox React example starter project codesandbox.io 4. Terminal์„ ํ†ตํ•ด create-react-app install์„ ๋งˆ์นœ๋’ค, VS code์˜ ํ„ฐ๋ฏธ๋„์—์„œ ๋‹ค์Œ์˜ ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ•œ๋‹ค. npm run start ๋ผ๊ณ  ์น˜๊ณ  ์—”ํ„ฐ๋ฅผ ๋ˆŒ๋Ÿฌ ์‹คํ–‰ํ•œ๋‹ค. (์ข…๋ฃŒ๋ฅผ ์›ํ• ๋•Œ๋Š” command + c๋ฅผ ๋ˆ„๋ฅธ๋‹ค.) ์š”๋Ÿฐ ํ™”๋ฉด๋“ค์ด ๋œจ๊ฒŒ ๋œ๋‹ค. ..

728x90
๋ฐ˜์‘ํ˜•