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

๋ชฉ๋ก์ „์ฒด ๊ธ€ (311)

Daehyunii's Dev-blog

[๋ฆฌ์•กํŠธ๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ธฐ์ˆ ] - TIL 127 ์ปดํฌ๋„ŒํŠธ ํŠน์ง•

ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ์™€ ํด๋ž˜์Šคํ˜• ์ปดํฌ๋„ŒํŠธ์˜ ์ฐจ์ด์  1. ํด๋ž˜์Šคํ˜• ์ปดํฌ๋„ŒํŠธ์˜ ๊ฒฝ์šฐ state ๊ธฐ๋Šฅ, ๋ผ์ดํ”„ ์‚ฌ์ดํด ๊ธฐ๋Šฅ์˜ ์‚ฌ์šฉ ๋ฐ ์ž„์˜ ๋ฉ”์„œ๋“œ ์ •์˜๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. 2. ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ์˜ ๊ฒฝ์šฐ ํด๋ž˜์Šคํ˜• ์ปดํฌ๋„ŒํŠธ์— ๋น„ํ•ด ๋ฉ”๋ชจ๋ฆฌ ์ž์›์„ ๋œ ์‚ฌ์šฉํ•œ๋‹ค.(์œ ์˜๋ฏธํ•œ ์ฐจ์ด๋Š” ์•„๋‹ˆ๋ผ๊ณ  ํ•จ) 3. ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋ฐฐํฌํ•  ๋•Œ ๊ฒฐ๊ณผ๋ฌผ์˜ ํŒŒ์ผ ํฌ๊ธฐ๊ฐ€ ๋” ์ž‘๋‹ค.(์œ ์˜๋ฏธํ•œ ์ฐจ์ด๋Š” ์•„๋‹ˆ๋ผ๊ณ  ํ•จ) 4. ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ์˜ ๊ฒฝ์šฐ์—๋Š” ํด๋ž˜์Šคํ˜• ์ปดํฌ๋„ŒํŠธ์—์„œ์˜ ๋ผ์ดํ”„ ์‚ฌ์ดํด ๊ธฐ๋Šฅ ๋Œ€์‹  Hooks๋ฅผ ํ†ตํ•ด ํ•ด๊ฒฐ ๊ฐ€๋Šฅํ•˜๋‹ค. props ๊ธฐ๋ณธ๊ฐ’ ์„ค์ •: defaultProps ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ๋กœ ๋ถ€ํ„ฐ prop์„ ์ „๋‹ฌ ๋ฐ›์ง€ ์•Š์€ ๊ฒฝ์šฐ์— defaultProps๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. const MyComponent = (props) => { return ์•ˆ๋…•ํ•˜์„ธ..

[๋ฆฌ์•กํŠธ๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ธฐ์ˆ ] TIL-126

๋ฆฌ๋‹ค๊ธฐ๋ฅผ ์ฝ๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค. ์˜ค๋Š˜๋ถ€ํ„ฐ ๋ฆฌ์•กํŠธ๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ธฐ์ˆ ์„ ์ฝ๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค. ๊ธฐ์กด์— ๋ฆฌ์•กํŠธ๋ฅผ ์ ‘ํ•œ ๊ฒฝํ—˜์ด ์—†์—ˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋ฐ๋ธŒ์ฝ”์Šค์—์„œ ๋ฆฌ์•กํŠธ๋ฅผ ๋ณธ๊ฒฉ์ ์œผ๋กœ ๋‹ค๋ฃจ๊ธฐ ์ „์— ๊ธฐ๋ณธ์ ์ธ ๋‚ด์šฉ์„ ํ•™์Šตํ•˜๋Š”๊ฒƒ์ด ์ข‹๋‹ค๋Š” ํŒ๋‹จ์ด ๋“ค์–ด ์ธํ”„๋Ÿฐ์—์„œ '์ œ๋กœ์ดˆ' ๋ฆฌ์•กํŠธ ๊ฐ•์˜๋ฅผ ๋“ค์—ˆ๊ณ  ์ง€๊ธˆ์€ ๋ฐ๋ธŒ์ฝ”์Šค๋ฅผ ํ†ตํ•ด์„œ ๋ฆฌ์•กํŠธ ๊ฐ•์˜๋ฅผ ๋“ค์œผ๋ฉฐ ๊ณต๋ถ€ํ•˜๊ณ  ๊ฐœ๋ณ„์ ์œผ๋กœ '๋ฆฌ์•กํŠธ๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ธฐ์ˆ '์„ ๊ฐ™์ด ์ฝ๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค. ์˜ค๋Š˜์€ ๋ฆฌ์•กํŠธ์˜ ํŠน์ง•๊ณผ JSX ๊ธฐ๋ณธ์ ์ธ ๋ฌธ๋ฒ•๋“ค์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€ํ–ˆ๋‹ค. 2022.12.20 - [๐Ÿ“š Language & CS knowledge/React] - JSX๋ž€? JSX๋ž€? JSX๋ž€? ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ํ™•์žฅ ๋ฌธ๋ฒ•์ด๋ฉฐ XML๊ณผ ๋งค์šฐ ์œ ์‚ฌํ•˜๋‹ค. ์šฐ์„  JSX๋Š” ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‹คํ–‰๋˜๊ธฐ ์ „ ๋ฒˆ๋“ค๋ง๋˜๋Š” ๊ณผ์ •์—์„œ ๋ฐ”๋ฒจ์„ ํ†ตํ•ด ์ผ๋ฐ˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ˜•ํƒœ์˜ ์ฝ”๋“œ๋กœ ..

JSX๋ž€?

JSX๋ž€? ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ํ™•์žฅ ๋ฌธ๋ฒ•์ด๋ฉฐ XML๊ณผ ๋งค์šฐ ์œ ์‚ฌํ•˜๋‹ค. ์šฐ์„  JSX๋Š” ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‹คํ–‰๋˜๊ธฐ ์ „ ๋ฒˆ๋“ค๋ง๋˜๋Š” ๊ณผ์ •์—์„œ ๋ฐ”๋ฒจ์„ ํ†ตํ•ด ์ผ๋ฐ˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ˜•ํƒœ์˜ ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜๋œ๋‹ค. ๋‹ค์Œ ์˜ˆ์ œ๋ฅผ ์‚ดํŽด๋ณด์ž. JSX function App() { return ( Hello react ) } ๋ณ€ํ™˜ function App() { return React.createElement("div", null, "Hello", React.createElement("b", null, "react")) } ์ด ์ฒ˜๋Ÿผ JSX๋ฅผ ํ†ตํ•ด์„œ ์šฐ๋ฆฌ๋Š” JavaScript๋กœ ์ž‘์„ฑํ•ด์•ผ ํ•˜๋Š” ์ฝ”๋“œ๋“ค์„ ๊ฐ„๋žตํ•˜๊ณ  ์‹œ๊ฐ์ ์œผ๋กœ๋„ ๋ณด๊ธฐ ์ข‹๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•œ ๋งˆ๋””๋กœ JSX๋Š” ๋ณด๊ธฐ ์‰ฝ๊ณ  ์šฐ๋ฆฌ์—๊ฒŒ ์ต์ˆ™ํ•œ ํ˜•ํƒœ๋กœ ์ž‘์„ฑ๋œ๋‹ค. ๋˜ํ•œ JSX ๋ฌธ๋ฒ•์„ ํ™œ์šฉํ•˜๋ฉด ์ปดํฌ๋„ŒํŠธ..

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 ์ƒˆ๋กœ์šด ๋ฆฌ์•กํŠธ ์•ฑ์„ ๋งŒ..

[๋ฐ๋ธŒ์ฝ”์Šค] TIL-124 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 ์ƒˆ๋กœ์šด ๋ฆฌ์•กํŠธ ์•ฑ์„ ๋งŒ..