์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- ์ํ
- ์นดํ๋๊ฐ
- ๊ฐ๋ฐ
- ํฐ์คํ ๋ฆฌ์ฑ๋ฆฐ์ง
- ์ฑ
- dmz๋คํธ์ํฌ
- ํ์ฒ์ ๋ฆฌํธ๋ฆฌํธ
- dmz๊ตฌ์ฑ
- ์ ๋ฆฌํธ๋ฆฌํธ
- Python
- ์๋ฐ์คํฌ๋ฆฝํธ
- ๋ฐฉํ๋ฒฝdmz
- ์นํผ๋ธ๋ฆฌ์ฑ
- dmz๋
- ์ฝ๋ฉ
- ํ์ด์ฌ
- css
- JavaScript
- ํ๋ก๊ทธ๋๋ฐ
- html
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- Java
- ๋ ์
- ์๋ฐ
- ๋๊ฐ
- database
- ์ค๋ผํด
- ๊ฐ์์ ์
- ์ค๋ธ์
- ๋คํธ์ํฌdmz
- Today
- Total
๋ชฉ๋กStudy/React (18)
JiYoung Dev ๐ฅ

๐ ์ฐธ์ฐธ์ฐธ ๊ฒ์ ๋ง๋ค๊ธฐ ๐ ๊ฒ์๊ท์น 1. ๋๋ ๊ณต๊ฒฉ, ์ปดํจํฐ๋ ์๋น ๋ด๋น 2. ๋ด๊ฐ ๋ฒํผ์ ํด๋ฆญํ์ ๋ ๋์ ์ปดํจํฐ์ ์ ํ์ด ๊ฐ๋ค๋ฉด ๋(๊ณต๊ฒฉ)์ ์น๋ฆฌ 3. ๋์ ์ปดํจํฐ์ ์ ํ์ด ๋ค๋ฅด๋ค๋ฉด ์ปดํจํฐ(์๋น)์ ์น๋ฆฌ ๐ ์์ฑ์ฝ๋ import React, { useState, useEffect } from "react"; const Ex03 = () => { /** * ์ฐธ์ฐธ์ฐธ ๊ฒ์์ ๋ง๋ค์ด๋ณด์! * ๊ฒ์ ๊ท์น * 1. ๋๋ ๊ณต๊ฒฉ, ์ปดํจํฐ๋ ์๋น๋ฅผ ๋ด๋น * 2. ๋ด๊ฐ ๋ฒํผ์ ํด๋ฆญํ์ ๋ ๋์ ์ปดํจํฐ์ ์ ํ์ด ๊ฐ๋ค๋ฉด ๋(๊ณต๊ฒฉ)์ ์น๋ฆฌ * 3. ๋์ ์ปดํจํฐ์ ์ ํ์ด ๋ค๋ฅด๋ค๋ฉด ์ปดํจํฐ(์๋น)์ ์น๋ฆฌ * * ๋ฌธ์ ํ์ด * 1. ํ์ํ state๋ค์ ๊ด๋ฆฌ : ๋ด์ ํ, ์ปดํจํฐ์ ํ, ๊ฒ์๊ฒฐ๊ณผ * >> useState * 2. ๋ด ์ ..

LifeCycle ํ์ฌ react๋ node.js ์๋ฒ ์์์ ๋์๊ฐ๊ณ ์์. node.js๋ ์ฑ๊ธ์ค๋ ๋๋ก ์์ ์ ์งํํ๋ ํ๋ก์ธ์ค๊ฐ ํ๋ ๋ฐ์ ์์. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์์์ ์๋๋ก ์ฝ๋๊ฐ ์์ฑ๋ ์์๋๋ก ์งํ๋๋ java์๋ ๋ฌ๋ฆฌ ์ฝ๋ ์ค๊ฐ์ ์กฐ๊ฑด๋ฌธ๊ณผ ๊ฐ์ ๋ฌด๊ฑฐ์ด ์์ ์ด ์์ผ๋ฉด ์์์ ์๋๋ก ์ฝ๋ ์์ฑ ์์๋๋ก ์์ ์ ์งํํ์ง ์๊ณ , ๊ฐ๋ฒผ์ด ์์ ๋ถํฐ ์งํ ํ ๋ฌด๊ฑฐ์ด ์์ ์ ์งํ์ํด. ๋ฐ๋ผ์ React์์๋ ์์์ ์๋๋ก ์์๋๋ก ์ฝ๋๋ฅผ ์์ฑํ๋ค๊ณ ํด์ ์ํ๋ ๋๋ก ์์ ์ด ์คํ๋์ง ์์. Reactsms ์ปดํฌ๋ํธ๊ฐ ์คํ๋๊ฑฐ๋, ์ ๋ฐ์ดํธ ๋๊ฑฐ๋, ์ญ์ ๋ ๋ ํน์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํจ. ์ด๋ฌํ React์ ํน์ฑ์ ์๋ช ์ฃผ๊ธฐ(LifeCycle)์ด๋ผ๊ณ ํ๋ฉฐ, React๋ฅผ ํตํด ์ฐ๋ฆฌ๊ฐ ์ํ๋ ๋๋ก ์นํ์ด์ง๊ฐ ์๋ํ๊ฒ ๋ง๋ค..

useRef ๐ useRef ์์ ์๊ฒ ๋ฒํผ์ ํด๋ฆญํ๋ฉด ์ฌ๊ฐํ์ ํฌ๊ธฐ๊ฐ ์๊ฒ, ์๋ณธ ๋ฒํผ์ ํด๋ฆญํ๋ฉด ์๋ณธ ํฌ๊ธฐ๋ก, ํฌ๊ฒ ๋ฒํผ์ ํด๋ฆญํ๋ฉด ์ฌ๊ฐํ์ ํฌ๊ธฐ๊ฐ ํฌ๊ฒ ๋ณํ๊ฒ ๋ง๋ค๊ธฐ ๐ ์๋ฐ์คํฌ๋ฆฝํธ ์๋ฐ์คํฌ๋ฆฝํธ์์๋ ์ด ๋ฌธ์ ๋ฅผ ํ๊ธฐ์ํด ์ฌ๊ฐํ ์์์ ์ ๊ทผํ๊ธฐ ์ํด์ document์ ์ ๊ทผํด์ผ ํ์ ์ฌ๊ฐํ ์์ : ์๋ฐ์คํฌ๋ฆฝํธ๋ก id๊ฐ box์ธ ์์์ ์ ๊ทผํ๊ธฐ : document.getElementById('box").style.width= 100px ๐ ๋ฆฌ์กํธ์์ ๋ณ๊ฒฝ์ํค๋ ค๋ฉด? DOM์ผ๋ก ๋ง์ฐฌ๊ฐ์ง๋ก ์ ๊ทผํด์ผํจ useRef ์ฌ์ฉ usdRef : ํน์ DOM ์์์ ์ ๊ทผํ๊ณ ์ถ์ ๋ ์ฌ์ฉ - ๋ฐ๋๋ผJS์์๋ getElementById, querySelector ๋ฑ์ ์ฌ์ฉํ์ฌ ํน์ DOM ์์์ ์ ๊ทผํ์์ - React..
๐ ๊ตฌ์ฑํ๊ธฐ ๐ ์ปดํฌ๋ํธ 1. TodoList 2. TodoItem 3. TodoInput ๐ ์ปจํ ์คํธ - TodoContext ์ ์ญ์ ์ผ๋ก ์ฌ์ฉํ ๊ฐ 1. todos : ๋ด์ฉ, ์๋ฃ์ฌ๋ถ (๊ฐ์ฒด๋ก ์ ์ฅ) 2. newTodo : ๋ด์ฉ ๐ ์ฝ๋ ์์ฑํ๊ธฐ (์์) 1) ํ๋ฉด์ ์ฒซ Todo ๋ณด์ด๊ฒ ํ๊ธฐ ์ปดํฌ๋ํธ ์ฐ๊ฒฐ ์ปจํ ์คํธ ์ฐ๊ฒฐ ์ปจํ ์คํธ๋ก ์ฌ์ฉํ ๊ฐ state๋ก ์ ์ฅ ํ ์ด๊น๊ฐ ์ง์ ํ์ฌ ์ถ๋ ฅ๋๋๋ก 2) ์ ๋ ฅ์ฐฝ์ ๊ธ์จ๋ฅผ ์ ๋ ฅํ๋ฉด newTodo์ ์ ์ฅ handleNewTodo() 3) Add ๋ฒํผํด๋ฆญ์ Todos์ newTodo ๊ฐ์ฒด ์ถ๊ฐ, input ํ ์คํธ ์ฐฝ ๊ณต๋ฐฑ์ผ๋ก addNewTodo() 4) add ๋ฒํผ ํด๋ฆญ์ ์ถ๊ฐ๋ ๊ฐ์ฒด ํ๋ฉด์ ๋์ฐ๊ธฐ addNewTodo() 5) delete ํด๋ฆญํ๋ฉด ํด๋น ๋ฆฌ์คํธ ์ญ์ d..

๐ context API ์ฐ๋ ์ด์ ๐ props์ ๋จ์ ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ์ ํ๋ฆ ์์ ๊ฐ์ ๋ฐ์ดํธ ํ๋ฆ์ ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ํ๋ฆ (one-way reactive data flow)์ด๋ผํ๊ณ react๋ ์ด๋ฌํ ํ๋ฆ์ ๊ฐ์ง๊ณ ์์ ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ํ๋ฆ์ ์ฅ์ 1. ๊ด๋ฆฌ์ ์ฉ์ดํจ 2. DOM๊ณผ์ ๊ถํฉ - tree๊ตฌ์กฐ์ dom ๊ตฌ์กฐ์ ์ ๋ฆฌํจ ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ํ๋ฆ์ ๋จ์ ์์์์์์ ๋ถ๋ชจ์์๋ก ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ก ์ ๋ฌํ ์ ์์ โ๏ธ ๋ถ๋ชจ์์๊ฐ ์์์์์ ๊ฐ์ ๋ฐ์๋ณผ ์ ์๋๋ก ํ๋ ๋ฐฉ๋ฒ ๊ท์ฐฎ๋ค >> contextAPI๋ฅผ ์ฌ์ฉํจ ๐ context API ๐ context API ์ฌ์ฉํ๋ ์ด์ props๋ฅผ ์ฌ์ฉํ๋ฉด ์ฌ๋ฌ๋ฒ ์ฌ์ฉํด์ผ ํจ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ก ๋ณด๊ดํ์ฌ ๋์ด๋ค ์ฐ๋ ๋ฒ >> Context API ์ฅ์ : ์ ์ญ์ ์ผ๋ก ์ฌ์ฉํ ์..

์ง๋์ฃผ๋ถํฐ ๋ฆฌ์กํธ๋ฅผ ๋ฐฐ์ฐ๊ธฐ ์์ํ๋๋ฐ ๊ตฌ์กฐ์ ๋ฌธ๋ฒ, ์ฐ๋ ์ด์ ์ ๋ํ์ฌ ์ดํด๊ฐ ์๋์ด ๋ฐ๋ก ์ ๋ฆฌํ ๋ด์ฉ! 1. ๋ฆฌ์กํธ(React)๋? ๋ฆฌ์กํธ๋, ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๋ง๋ค๊ธฐ ์ํ JavaScript ๋ผ์ด๋ธ๋ฌ๋ฆฌ meta(๊ตฌ facebook)์์ ์ ๊ณตํด์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ฃผ๋ก SPA(Single Page Application)์ ๋ง๋ค ๋ ์ฌ์ฉ React๋ฅผ ์ฌ์ฉํ๋ฉด ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ UI ๊ตฌ์ฑ ์์๋ฅผ ๋ง๋ค ์ ์์ 1-1. ๊ธฐ์กด ์๋ฐ ์คํฌ๋ฆฝํธ์ ๋จ์ 1) HTML๊ณผ JS๊ฐ ๊ฐ์ง ๋ถ๋ฆฌ๊ฐ & ์ง๊ด์ ์ด์ง๋ง ๋๋ฌด ๊ธด ์๋ฐ์คํฌ๋ฆฝํธ ๋ฌธ๋ฒ ์๋ฐ์คํฌ๋ฆฝํธ์์ HTML ์์์ ์ ๊ทผํ๊ธฐ ์ํด์๋ document.getElementById ๋ฑ ์ผ๋ก ์์ํ๋ ๊ธด ์ฝ๋ ์์ฑ์ ํตํด ์์๋ฅผ ๋ถ๋ฌ ์ฌ ์ ์์ ๋ฆฌ์กํธ๋ HTML๊ณผ JS ๋ฌธ์๋ฅผ ํฉ..

terminal ๋ช ๋ น์ด npm : ์ด๋ฏธ ์ค์น๊ฐ ๋์ด์์ ์์ด๋ฅผ ์ฌ์ฉํ ๋ (ex. terminal start) npx : ์ค์น๊ฐ ๋์ด์์ง์๋ ๊ฒ์ ์ฌ์ฉํ ๋ (ex. npx create-react-app project02) ์ข ๋ฃ : ctrl + C โ project ํด๋ ๊ตฌ์ฑ node_modules : ํ์ํ ์ฅ์น๋ค public : ์ ์ ์ธ ํ์ผ / ์ด๋ฏธ์ง, html, json, text ๋ฑ src : js, css ๋ฑ ๋์ ์ผ๋ก ๋์ ํ๊ธฐ ์ํด ํ์ํ ์น๊ตฌ๋ค ๐ ์ปดํฌ๋ํธ ๋ฆฌ์กํธ๋ ํ๋ฉด์์ UI ์์๋ฅผ ๊ตฌ๋ถํ ๋ '์ปดํฌ๋ํธ'๋ผ๋ ๋จ์๋ฅผ ์ฌ์ฉํจ ์ปค๋ค๋ ๋จ์, ๊ฐ๋ฐ์๊ฐ ์ปค์คํ ํ ์ ์๋ ์ต์ ๋จ์ (๊ธฐ๋ฅ๋ณ ํน์ ํ์ด์ง๋ณ๋ก ๋ง๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์) ๋ด๊ฐ ์ํ๋ ํ๊ทธ๋ค์ ๋ชจ์์ ํ๋์ ๋จ์๋ก ๋ง๋ค์ด์ค๋ค. react ๋ฌธ๋ฒ..

๐ ๋ฆฌ์กํธ๋? ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค ํ๋ ํ๋ ์์ํฌ์ ์ธ ์ฑ๊ฒฉ์ ๋๊ณ ์์ ๐ ๋ฆฌ์กํธ๋ฅผ ์ฌ์ฉํ๋ ์ด์ ์๋ฐ์คํฌ๋ฆฝํธ๋ง์ผ๋ก๋ ๋ถ์กฑํ๋๊น! ๐ ์๋ฐ์คํฌ๋ฆฝํธ์ ๋จ์ 1. HTML๊ณผ JS๊ฐ ๊ฐ์ง ๋ถ๋ฆฌ๊ฐ - JS์์ HTML์ ์ ๊ทผํ๊ธฐ ์ํด์๋ document. ์ผ๋ก ์ ๊ทผํด์ผ ํจ > ๊ด๋ จ์๋ HTML, JS ๋ฌธ์๋ค์ JSX๋ก ํฉ์ณ์ค! 2. ์ง๊ด์ ์ด์ง๋ง ๋๋ฌด ๊ธด ์๋ฐ์คํฌ๋ฆฝํธ ๋ฌธ๋ฒ 3. ์ ํ์ด์ง๋ฅผ ๋ค์ด๊ฐ ๋๋ง๋ค ์๋ก๊ณ ์นจ - ์ฌ์ฉ์๊ฐ ํผ๋ก๋๋ฅผ ๋๋ผ๊ฒ ๋จ > ์๋ก์ด ํ์ด์ง๋ ๋ฉ๋ด๋ฅผ ๋ค์ด๊ฐ๋ ์๋ก๊ณ ์นจ์ด ๋์ง ์์ ์ฌ์ฉ์์ ํผ๋ก๋๋ฅผ ์ค์ฌ์ค : Single Page Application(SPA) ๐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ vs ํ๋ ์์ํฌ ๊ฐ๋ฐ์ ๋์์ฃผ๋ ์ญํ ์ด์ง๋ง ๊ฐ๋ฐ์ ์ฃผ์ฒด๊ฐ ๋ค๋ฆ ๐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฐ๋ฐ์ ์ฃผ์ฒด๋ ๋! ๊ธฐ๋ฅ๋ง ๊ฐ์ ธ๋ค ์ฌ..