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

TIL -์ผ๊ฐ„ํ•™์Šต๊ธฐ๋ก/React9

Use effect ์˜ defendency array ์— ๋Œ€ํ•˜์—ฌ use effect 2022. 5. 23.
API, UseEffect๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ Use Effect๊ฐ€ ์•„์ง ์–ด๋–ค ๋…€์„์ธ์ง€ ์ž˜๋ชจ๋ฅด๊ฒ ๋‹ค.. ๊ณต์‹๋ฌธ์„œ ํ™•์ธ ๊ณ ๊ณ  UseEffect = ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ ๋‚ด์—์„œ side Effect ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค. *Side Effect๋ž€ ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋˜๋ฉด์„œ ํ•จ์ˆ˜์™ธ๋ถ€์— ์กด์žฌํ•˜๋Š” ๊ฐ’์ด๋‚˜ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝ์‹œํ‚ค๋Š” ํ–‰์œ„์ด๋‹ค. ex) ํ•จ์ˆ˜๋‚ด์—์„œ ์ „์—ญ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ๋ณ€๊ฒฝ์‹œํ‚ค๊ฑฐ๋‚˜ ํ•จ์ˆ˜์™ธ๋ถ€ ๋ฒ„ํŠผ์˜ ํ…์ŠคํŠธ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ , ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์†ก์‹ ํ•˜๋Š” ๊ฒƒ๋“ฑ์ด ์žˆ๋‹ค. ํ•จ์ˆ˜๋Š” ์ „๋‹ฌ๋ฐ›์€ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผํ•˜๋ฉฐ ๊ฒฐ๊ณผ๋Š” ํ•ญ์ƒ ์ผ๊ด€๋˜๊ณ  ์˜ˆ์ธก ํ• ์ˆ˜์žˆ์–ด์•ผํ•œ๋‹ค. ๊ทธ๋ž˜์•ผ ํ”„๋กœ๊ทธ๋žจ์ด ์‰ฝ๊ณ  ๋‹จ์ˆœํ•˜๋ฉฐ ์œ ์ง€๋ณด์ˆ˜ ํ•˜๊ธฐ๊ฐ€ ์‰ฌ์›Œ์ง€๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋ฆฌ์•กํŠธ์—๋Š” ์ ˆ์ฐจํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ํ”ํžˆ ์กด์žฌํ•˜๋Š” ์ž‘์—…์ธ Side Effect ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด Use Effect() ํ•จ์ˆ˜๊ฐ€ ์žˆ๋‹ค. ์˜ˆ์‹œ๋ฅผ ํ™œ์šฉ.. 2022. 2. 17.
Stateairline-client ๊ณผ์ œ [React] ๋ฐ์ดํ„ฐ ํ๋ฆ„์˜ ์ดํ•ด์™€ ๋น„๋™๊ธฐ ์š”์ฒญ ์ฒ˜๋ฆฌ ์ดํ‹€์— ๊ฑธ์ณ ๋ฐ์ดํ„ฐ์˜ ํ๋ฆ„, state์ƒํƒœ ๋Œ์–ด์˜ฌ๋ฆฌ๊ธฐ์™€ useEffect AJAX์š”์ฒญ์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ–ˆ๋‹ค. ๋ฆฌ์•กํŠธ์˜ ์ปดํฌ๋„ŒํŠธ๋Š” 1๊ฐ€์ง€์˜ ์ผ๋งŒ ํ•˜๊ณ  ๋‹จ๋ฐฉํ–ฅ์˜ ๋ฐ์ดํ„ฐ ํ๋ฆ„์„ ๊ฐ€์ง„๋‹ค. ๊ทธ๋ž˜์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋””์— ๋‹ด์•„์ค˜์•ผํ• ์ง€ ์ •ํ•ด์ค˜์•ผํ•œ๋‹ค.(๋ฐ์ดํ„ฐ์ •์˜) ๋ถ€๋ชจ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์ž์‹์—๊ฒŒ props(์ฝ๊ธฐ์ ์šฉ)๋กœ ๋‚ด๋ ค์ค€๋‹ค(์ธ์ž ํ˜น์€ ์†์„ฑ์ฒ˜๋Ÿผ ๋‚ด๋ ค์คŒ) ์ž์‹์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚ด๋ ค๋ฐ›์ง€๋งŒ ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋””์—์„œ ์™”๋Š”์ง€๋Š” ์•Œ์ง€๋ชปํ•œ๋‹ค. [์ƒํƒœ๋Œ์–ด์˜ฌ๋ฆฌ๊ธฐ] ๋ฐ์ดํ„ฐ์˜ ํ๋ฆ„์ด top-down ๋ฐฉ์‹์ด์ง€๋งŒ, ์ž์‹์ปดํฌ๊ฐ€ ๋ถ€๋ชจ์ปดํฌ์˜ ์ƒํƒœ๋ฅผ ๋ฐ”๊ฟ”์•ผํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” (์˜ˆ. ์ž์‹์ปดํฌ์— ์ „์†ก๋ฒ„ํŠผ์ด ์žˆ์–ด ํด๋ฆญ์‹œ ๋ถ€๋ชจ์˜ ๋ฐ์ดํ„ฐ ๋ชฉ๋ก์ด ์—…๋ฐ์ดํŠธ ๋˜์–ด์•ผ ํ•˜๋Š”๊ฒฝ์šฐ) ๋ถ€๋ชจ์ปดํฌ๋‚ด์— ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋‘๊ณ  ์ž์‹์ปดํฌ์— ์ด ์ƒํƒœ .. 2022. 2. 9.
Weather API & data component ์˜ค๋Š˜์ž todolist ์ž‘์—… 1. ์™€์ด์–ด ํ”„๋ ˆ์ž„ + ์ปดํฌ๋„ŒํŠธ ๋‚˜๋ˆ„๊ธฐ. 2.Data , Weather Component ๋งŒ๋“ค๊ธฐ. 1. ์™€์ด์–ด ํ”„๋ ˆ์ž„ + ์ปดํฌ๋„ŒํŠธ ๋‚˜๋ˆ„๊ธฐ. ์ „์ฒด ํŽ˜์ด์ง€๋Š” App์— ๋„์šฐ๊ณ , ๋‹ค๋ฅธ ์ปดํฌ๋„ŒํŠธ๋“ค์€ ๊ฐ์ž ํ• ์ผ์„ ์ž‘๊ฒŒ ๋‚˜๋ˆ„์–ด ๋งŒ๋“ค๊ธฐ๋กœ ํ–ˆ๋‹ค. App์— ํ‘œ์‹œ๋  ์ปดํฌ๋„ŒํŠธ ์™ธ์—๋Š” Listํด๋”์— ๋”ฐ๋กœ ๋‹ด์•„๋‘์—ˆ๋‹ค. ์–ด๋–ป๊ฒŒ state์™€ props๋ฅผ ๋‚ด๋ ค์ฃผ์–ด์•ผ ํ• ์ง€ ํ—ท๊ฐˆ๋ฆด๊ฒƒ ๊ฐ™์•„์„œ ๋ถ€๋ชจ์ž์‹๊ฐ„์˜ ํŠธ๋ฆฌ๊ตฌ์กฐ๋„ ํ‘œํ˜„ํ•ด๋ดค๋‹ค. ๋งค์ผ ๋ฐ˜๋ณตํ•  ์ผ์ •์„ ๋„์šธ DayLoop์™€ ๋‹น์ผ ์ผ์ •ํ›„์—” ๋ฆฌ์…‹ ๋  TodoList๋Š” AddList๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž๊ฐ€ ์ผ์ •์„ ์ถ”๊ฐ€ํ• ๋•Œ ํ† ๊ธ€๋ฒ„ํŠผ์„ ์ด์šฉํ•ด ๋งž๋Š” ์ปดํฌ๋„ŒํŠธProp์œผ๋กœ ๋‚ด๋ ค ์ค„ ์˜ˆ์ •. remove๋Š” ์–ด๋””์— ํฌํ•จํ•ด์•ผํ• ์ง€ ์ž˜๋ชจ๋ฅด๊ฒ ์–ด์„œ ์ง„ํ–‰ํ•˜๋‹ค๊ฐ€ ๋ผ์›Œ๋„ฃ์„๊ฑฐ ๊ฐ™์€๋ฐ ์•„๋งˆ addlist์— ๋“ค์–ด.. 2022. 2. 5.
[React ์ž์Šต์„œ] Tic Tac Toe.. ํˆฌ๋‘๋ฆฌ์ŠคํŠธ๋ฅผ ์‹œ์ž‘ ํ•˜๊ธฐ์— ์•ž์„œ ๋ฆฌ์•กํŠธ๋ฅผ ๋„ˆ๋ฌด ๋ชจ๋ฅด๋Š”๊ฑฐ ๊ฐ™์•„, ๊ณต์‹๋ฌธ์„œ ์ž์Šต์„œ์˜ ํ‹ฑํƒํ† ๋ฅผ ๊ณต๋ถ€ํ•˜๊ณ ์žˆ๋‹ค. function Square(props) { return ( {props.value} ); } class Board extends React.Component { constructor(props){ super(props); this.state = { squares: Array(9).fill(null), xIsNext : true, }; } handleClick(i) { const squares = this.state.squares.slice(); if(calculateWinner(squares) || squares[i]){ return; } squares[i] = this.state.xIsNext ? '.. 2022. 2. 3.
[TodoList]create react app ์„ค์น˜ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์…‹ํŒ…์„ ๋„์™€์ฃผ๋Š” ํˆด ์ธ create react app ์„ ์ด์šฉํ•˜์—ฌ ํˆฌ๋‘ ๋ฆฌ์ŠคํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๋ ค๊ณ  ํ•œ๋‹ค ํ„ฐ๋ฏธ๋„์— `npx create-react-app todo` ๋ฅผ ๋„ฃ์—ˆ๋Š”๋ฐ ๋ญ”๊ฐ€ ์—๋Ÿฌ๊ฐ€๋œธ. ์ฝ์–ด๋ณด๋‹ˆ ๋ฒ„์ „์˜ ๋ฌธ์ œ์ธ๊ฒƒ๊ฐ™๊ณ  ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋ช…๋ น์–ด์™€ ์ฐธ๊ณ ํ•  ์‚ฌ์ดํŠธ ์ฃผ์†Œ๋ฅผ ์•Œ๋ ค์ฃผ์–ด์„œ ๊ฒ€์ƒ‰ํ•ด๋ด„. ๋ฆฌ์•กํŠธ ๊ณต์‹๋ฌธ์„œ์— ๊ฐ€๋ณด๋‹ˆ ์ด์ „์— create react app์„ ์ „์—ญ์ ์œผ๋กœ ์„ค์น˜ํ•˜์˜€์„ ๊ฒฝ์šฐ ์‚ญ์ œํ›„ ์žฌ์„ค์น˜ํ•˜์—ฌ ํ•ญ์ƒ npx ์ตœ์‹  ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋Š”๊ฒƒ์„ ๊ถŒ์žฅํ•จ. ๊ทธ๋ž˜์„œ... ์œ„์˜๋ช…๋ น์–ด๋กœ ์‚ญ์ œ ํ•ด๋ณด๋ คํ–ˆ๋Š”๋ฐ ๋ญ”๊ฐ€...๋ฌด์„œ์›Œ์„œ npm ๋ฒ„์ „ ํ™•์ธํ›„ ์—…๋ฐ์ดํŠธ ํ•˜๋Š”๋ฒ•์„ ๊ฒ€์ƒ‰ ํ•ด์„œ -g๋ฅผ ๋„ฃ์€ (-g๋Š” global๋กœ ์ „์—ญ ์„ค์น˜?? ๋ฅผ๋งํ•˜๋Š”๊ฒƒ ๊ฐ™๋‹ค npm ๋ช…๋ น์–ด ์ธ๋“ฏ) cra๋ฅผ ๋‹ค์‹œ ์„ค์น˜ ํ•ด๋ดค์ง€๋งŒ ์ด๋ฒ„์ „์€ ์•ˆ์“ฐ์ด๋Š” ๋ฒ„์ „์ธ๊ฒƒ๊ฐ™๋‹ค. ์–ผ๋ฅธ .. 2022. 1. 30.
๋ฆฌ์•กํŠธ๋กœ Todo list๋ฅผ ๋งŒ๋“ค์–ด๋ณด์ž ํˆฌ๋‘๋ฆฌ์ŠคํŠธ๋ฅผ ์“ฐ๊ณ ์‹ถ์€๋ฐ ๋งˆ์Œ์— ๋“œ๋Š”๊ฒŒ ์—†์–ด์„œ ๋งŒ๋“ค์–ด๋ณด๊ธฐ๋กœํ•จ ๊ณต๋ถ€์— ๋„์›€๋ ์ˆ˜์žˆ๋„๋ก ๋ฆฌ์•กํŠธ ๋‚ ์”จapi ๋น„๋™๊ธฐ(์–ด๋””์„œ ๋“ค์–ด๊ฐ€์•ผํ• ์ง„ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ..) ๋ถ€์บ ์—์„œ ๋ฐฐ์šฐ๋Š”๊ฒƒ๋“ค์„ ๋˜๋„๋ก ๋งŽ์ด ์‚ฌ์šฉํ•ด๋ณผ์˜ˆ์ • 2022. 1. 30.
REACT - 21.12.26 - JSX, STATE, PROPS ํ•™์Šต๋ชฉํ‘œ REACT & JSX React์˜ 3๊ฐ€์ง€ ํŠน์ง•์— ๋Œ€ํ•ด์„œ ์ดํ•ดํ•˜๊ณ , ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋‹ค. JSX๊ฐ€ ์™œ ๋ช…์‹œ์ ์ธ์ง€ ์ดํ•ดํ•˜๊ณ , ๋ฐ”๋ฅด๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. React ์ปดํฌ๋„ŒํŠธ(React Component)์˜ ํ•„์š”์„ฑ์— ๋Œ€ํ•ด์„œ ์ดํ•ดํ•˜๊ณ , ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋‹ค. create-react-app ์œผ๋กœ ๊ฐ„๋‹จํ•œ ๊ฐœ๋ฐœ์šฉ React ์•ฑ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. SPA(Single-Page Application) ๊ฐœ๋…์„ ์ดํ•ดํ•˜๊ณ  ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋‹ค. SPA์˜ ์žฅ, ๋‹จ์ ์— ๋Œ€ํ•ด ์ดํ•ดํ•˜๊ณ  ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋‹ค. ์™€์ด์–ดํ”„๋ ˆ์ž„์„ ๋ณด๊ณ  ์–ด๋Š ๋ถ€๋ถ„์„ ์ปดํฌ๋„ŒํŠธ๋กœ ๊ตฌ๋ถ„ํ•ด์•ผ ํ•  ์ง€ ์Šค์Šค๋กœ ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. React์—์„œ npm์œผ๋กœ React Router DOM์„ ์„ค์น˜(npm install react-router-dom@5.3.0)ํ•˜๊ณ  ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. React.. 2021. 12. 26.
4W_JS_React Route ์‹œ๊ฐ„์ด ์ง„์งœ ์™œ์ด๋ ‡๊ฒŒ ๋นจ๋ฆฌ๊ฐ€๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค. ๋ฉ”์„œ๋“œ ๊ณต๋ถ€ํ•˜๋‹ค ๊ฐ‘์ž๊ธฐ ๋ฆฌ์•กํŠธ๋กœ ๋Œ์•„์˜จ ๋ธ”๋กœ๊ทธ.. ๊ทธ์‚ฌ์ด์— ๊ต‰์žฅํžˆ ๋งŽ์€ ํ•™์Šต์ด ์ด๋ฃจ์–ด์กŒ์ง€๋งŒ, ์–ด์ œ ์˜ค๋Š˜ ๋ฆฌ์•กํŠธ ์ˆ˜์—…๋“ฃ๊ณ  ๊นจ๋‹ฌ์•˜๋‹ค. "..์•„! ์—ฌ๊ธฐ๊นŒ์ง€ ์˜จ๊ฒƒ์€ ๋‹ค ๋ฆฌ์•กํŠธ ๋ฐฐ์šฐ๋ ค๊ณ  ์˜จ๊ฑฐ๊ตฌ๋‚˜!! " ๊ทธ๋ž˜์„œ ๋งˆ์Œ์ด ํŽธํ•ด์กŒ๋‹ค. ๋’ค๋กœ ๊ตฌ๋ฅด๋“  ์˜†์œผ๋กœ ๊ตฌ๋ฅด๋“  ์–ด์จ‹๋“  ํ”„๋ก ํŠธ์—”๋“œ์˜ ๊ฝƒ, ๋ฆฌ์•กํŠธ๋งŒ ์ž˜ํ•ด๋„ ๋ฐ˜์€๊ฐ€๊ฒ ๊ตฌ๋‚˜..! (๋ฌผ๋ก  ๋ฆฌ์•กํŠธ ์ž˜ํ•˜๋ ค๋ฉด ์•ž์— ๋ฐฐ์šด๊ฑฐ ๋‹ค์ž˜ํ•ด์•ผํ•จ) ์—ฌํ•˜ํŠผ ์–ด์ œ์˜ ๊ธฐ๋ณธ๋ฌธ๋ฒ•์— ์ด์–ด ์˜ค๋Š˜์€ ๋ผ์šฐํ„ฐ๋ฅผ ๊ณต๋ถ€ํ–ˆ๊ณ , ๋ฆฌ์•กํŠธ ๋ผ์šฐํ„ฐ์˜ ์ฃผ์š” ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ฐฐ์šด๊ฒƒ ์œ„์ฃผ๋กœ ์ •๋ฆฌํ•ด๋ณด๋ คํ•œ๋‹ค. ๋จผ์ € ๋ผ์šฐํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ๋ผ์šฐํ„ฐ ๋ชจ๋“ˆ์ด ๋“ค์–ด์žˆ๋Š” ๋ฆฌ์•กํŠธ ๋ผ์šฐํ„ฐ ๋”์„ ์„ค์น˜ํ•˜์—ฌ์•ผํ•œ๋‹ค. npm install react-router-dom@5.3.0 ์šฐ๋ฆฌ๋Š” ๋ฒ„์ „ 5.3.0์„ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ ์ตœ์‹ ๋ฒ„์ „ ๋ฐ›.. 2021. 12. 3.