[week_09] React ๋ฌธ๋ฒ | React-Router-Dom v6, useReducer, useContext
1. React-Router-Dom ๋ผ์ด๋ธ๋ฌ๋ฆฌ v6 1-1. Routes, element Router โก Routes โก Route ๊ตฌ์กฐ๋ก ๊ตฌํํ๊ณ , element props๋ฅผ ์ฌ์ฉํด์ ๋ ๋๋งํ ์ปดํฌ๋ํธ๋ฅผ ์ ๋ฌํ๋ค. import { BrowserRouter as Router, Routes, Route } from "react-router-dom"; function App() { return ( ); } 1-2. useNavigate ํน์ ๊ฒฝ๋ก๋ก ์ด๋ํ ๋๋ useNavigate ํ ์ ์ฌ์ฉํ๋ค. const navigate = useNavigate() navigate("/login") navigate("/login", {replace: true}) 1-3. path="*" SPA ๋ผ์ฐํ ์ ๊ฑธ๋ฌ์ง์ง ์๋ ๋งํฌ..
[week_09] React ์ํ ๊ด๋ฆฌ
1. ์ํ ๊ด๋ฆฌ ์ฑ ์์์์ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ ๋ฑ์ ์ ์ฅํ๊ณ ํ๋ ์ด์์ ์ปดํฌ๋ํธ์์ ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ๋ ๊ฒ ํ ์ปดํฌ๋ํธ ์์์์ ์ํ, ์ฌ๋ฌ ์ปดํฌ๋ํธ ๊ฐ์ ์ํ, ์ ์ฒด ์ฑ์ ์ํ ๊ด๋ฆฌ๋ฅผ ๋ชจ๋ ํฌํจ 1-1. MPA์ SPA์์์ ์ํ ๊ด๋ฆฌ MPA: ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํด ํ์ด์ง๋ฅผ ๋ ๋๋ง โก ํด๋ผ์ด์ธํธ ๋ฐ์ดํฐ์ ์๋ฒ์ ๋ฐ์ดํฐ๊ฐ ํฐ ์ฐจ์ด๋ฅผ ๊ฐ์ง์ง ์๋๋ค. SPA: ์์ฒด์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ณ , ์๋ฒ์์ ๋๊ธฐํ๊ฐ ํ์ํ ๋ฐ์ดํฐ๋ง์ ์ฒ๋ฆฌ. ๊ทธ ์ธ์ ๋ฐ์ดํฐ๋ ํด๋ผ์ด์ธํธ๋ง์ ๋ฐ์ดํฐ๋ก ์ ์ง. 1-2. ์ํ ๊ด๋ฆฌ ๊ธฐ์ ์ด ํด๊ฒฐํ๋ ๋ฌธ์ ๋ค 1) ๋ฐ์ดํฐ ์บ์ฑ๊ณผ ์ฌํ์ฉ SPA์์ ํ์ด์ง ๋ก๋ฉ ์๋ง๋ค ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๋ก๋ฉํ๋ค๋ฉด, ์ฌ์ฉ์ ๊ฒฝํ ์ธก๋ฉด์์ MPA๋ฅผ ํฌ๊ฒ ๋์ด์๊ธฐ ํ๋ค๋ค. ๋ณ๊ฒฝ์ด ์ฆ์ ๋ฐ์ดํฐ๊ฐ ์๋๋ผ๋ฉด, ๋ฐ์ดํฐ๋ฅผ ์บ์ฑํ๊ณ ์ฌํ..
[week_08] React ๊ธฐ์ด โ ก(2) Hooks
1. Hook Hook์ ์ปดํฌ๋ํธ์์ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌ(State)ํ๊ณ , ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋ ๋ ์ํธ์์ฉ(Effect)์ ํ๊ธฐ ์ํด ์ฌ์ฉํ๋ค. ์์ ํ์ตํ useState๊ฐ ๋ฐ๋ก State Hook์ด๋ค. Hook์ ํด๋์ค ์ปดํฌ๋ํธ(Class Component)๋ฅผ ๋ณด์ํ๊ณ , ํจ์ ์ปดํฌ๋ํธ์์ ํด๋์ค ์ปดํฌ๋ํธ์ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ธฐ ์ํด React 16.8 ๋ฒ์ ์์ ์ถ๊ฐ๋์๋ค. โจ Hook ์ ์์ฌํญ 1) Hook์ Reactํจ์(์ปดํฌ๋ํธ, Hook) ๋ด์์๋ง ์ฌ์ฉ ๊ฐ๋ฅํ๋ค. 2) Hook์ ์ด๋ฆ์ ๋ฐ๋์ 'use'๋ก ์์ํด์ผ ํ๋ค. 3) ์ต์์ Level์์๋ง Hook์ ํธ์ถํ ์ ์๋ค. ์ฆ, ์ปดํฌ๋ํธ ๋ด์์ Hook์ ์ฌ์ฉํ ๋ ๋ฐ๋์ ์ฒซ๋ฒ์งธ ์ค๊ดํธ({ }) ์์์๋ง ์ฌ์ฉํด์ผ ํ๋ค. (๐ if๋ฌธ, for๋ฌธ ์์ชฝ ๋๋ ..
[week_08] React ๊ธฐ์ด โ ก (1) ์ด๋ฒคํธ
1. ์ด๋ฒคํธ(event) ์น ๋ธ๋ผ์ฐ์ ๊ฐ ์๋ ค์ฃผ๋ HTML ์์์ ๋ํ ์ฌ๊ฑด์ ๋ฐ์์ ์๋ฏธํ๋ค. ์ ์ ์ ํ๋์ ์ํด ๋ฐ์ํ ์๋ ์๊ณ , ๊ฐ๋ฐ์๊ฐ ์๋ํ ๋ก์ง์ ์ํด ๋ฐ์ํ ์๋ ์๋ค. ์ด๋ ๊ฒ ๋ฐ์๋ ์ด๋ฒคํธ๋ฅผ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ด์ฉํด์ ๋์ํ ์ ์๋ค. ์ด๋ฒคํธ ํธ๋ค๋ฌ ํจ์๋ฅผ ์ฌ์ฉํด์ ๋ค์ํ ๋ก์ง์ ์ฒ๋ฆฌํ๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์ฌ์ฉ์์๊ฒ ์ถ๋ ฅํด์ ์๋ฆด ์ ์๋ค. 1-1. ์ด๋ฒคํธ ์ฒ๋ฆฌ(ํธ๋ค๋ง) ๋ฐฉ๋ฒ const App = () => { const handleChange = (event) => { console.log("์ ๋ ฅ๊ฐ : " + event.target.value); } return ( ); }; DOM Element์ ๊ฒฝ์ฐ, ํธ๋ค๋ง ํจ์์ ์ด๋ฒคํธ object๋ฅผ ๋งค๊ฐ๋ณ์๋ก ์ ๋ฌํ๋ค. ์ด๋ฒคํธ object๋ฅผ ํ์ฉํด์ ์ด๋ฒค..
[week_08] React ๊ธฐ์ด โ (4) React ํ๋ก์ ํธ ์์ฑ
1. Create React App (CRA) React ํ๋ก์ ํธ๋ฅผ ์์ฝ๊ฒ ์์ฑํ ์ ์๋๋ก ๋์์ฃผ๋ ๋ณด์ผ๋ฌํ๋ ์ดํธ(Boilerplate) Facebook์์ ์ง์ ๋ง๋ค์ด์ ๊ด๋ฆฌํ๋ค. ํ๋ก์ ํธ ์์ฑ์ ํ์ํ ๋ค์ํ ๊ธฐ๋ฅ๋ค์ Command๋ก ์ ๊ณตํ๋ค. 1-1. Create React App (CRA)์ ์ฅ์ 1) ๊ฐ๋ฐ์๊ฐ ์จ์ ํ React App ๊ฐ๋ฐ์ ์ง์คํ ์ ์๋๋ก ํ๋ค. ์๋์ ์ผ๋ก ๋ ์ค์ํ ์ฝ๋๋ ๋ ธ์ถ๋์ง ์๋๋ค. ๊ฐ๋ ฅํ Command๋ฅผ ์ง์ํ๋ค. 2) (๋๋ถ๋ถ์) ๋ชจ๋ ๋ธ๋ผ์ฐ์ ์์ ํด์๋ ์ ์๋๋ก transcompile ์ง์ Babel ๊ธฐ๋ณธ ๋ด์ฅ ๋ฐฐํฌ ์ ์ฝ๋ ๋ฒ๋ค๋ง Webpack ๊ธฐ๋ณธ ๋ด์ฅ 2. Node.js / NPM ์๊ฐ Create React App์ผ๋ก React ํ๋ก์ ํธ ์์ ์ No..
[week_08] React ๊ธฐ์ด โ (3) Props์ State
1. Props ๊ธฐ๋ณธ์ ์ผ๋ก Component์ ์ํ๋ ๊ฐ์ ๋๊ฒจ์ค ๋ ์ฌ์ฉํ๋ฉฐ, ๋๊ฒจ์ค ์ ์๋ ๊ฐ์ ๋ณ์, ํจ์, ๊ฐ์ฒด, ๋ฐฐ์ด ๋ฑ JavaScript์ ์์๋ผ๋ฉด ์ ํ์ด ์๋ค. ์ฃผ๋ก Component์ ์ฌ์ฌ์ฉ์ ์ํด ์ฌ์ฉํ๋ค. /* 1. ์ปดํฌ๋ํธ ์์ฑ */ const Welcome = (props) => { return Hello, {props.name} } /* 2. ์ปดํฌ๋ํธ ์ฌ์ฉ */ const App = () => { return ; } Props๋ ์ฝ๊ธฐ ์ ์ฉ์ด๋ค. ๋ฐ๋ผ์, Props ๊ฐ์ ๋ณ๊ฒฝํด์ ์ฌ์ฉํ๊ณ ์ถ๋ค๋ฉด Props์ ๊ฐ์ ์์๋ก ๋ณ๊ฒฝํด์ ์ฌ์ฉํ๋ ๊ฒ์ด ์๋๋ผ, ์๋ก์ด ๋ณ์๋ฅผ ์์ฑํด์ ํด๋น ๊ฐ์ ๋ณต์ ํ ๋ค ์ํ๋ ๋๋ก ๋ณ๊ฒฝํด์ ์ฌ์ฉํ๋ค. 1-1. DOM Element์ Attributes ..
[week_08] React ๊ธฐ์ด โ (2) JSX์ ์ปดํฌ๋ํธ
1. JSX ํจ์ ํธ์ถ๊ณผ ๊ฐ์ฒด ์์ฑ์ ์ํ ๋ฌธ๋ฒ์ ํธ์๋ฅผ ์ ๊ณตํ๋ JavaScript์ ํ์ฅ HTML๊ณผ ๋น์ทํ๊ฒ ์๊ฒผ์ผ๋ JavaScript์ด๊ณ , HTML๊ณผ ๋ค๋ฅธ ๋ถ๋ถ์ด ์๋ค. JSX๋ Babel์ ์ํด์ Transcompile ๋๋ค. 1-1. JSX์ ์ฅ์ 1) ๊ฐ๋ฐ์ ํธ์์ฑ ํฅ์ 2) ํ์ ์ ์ฉ์ด / ์์ฐ์ฑ ํฅ์ 3) ๋ฌธ๋ฒ ์ค๋ฅ์ ์ฝ๋๋ ๊ฐ์ 1-2. JSX์ ํน์ง (HTML๊ณผ ์ฐจ์ด์ ) 1) HTML ํ๊ทธ ๋ด์ JavaScript ์ฐ์ฐ const App = () => { const a = 3; const b = 6; return {a} + {b} = {a+b} } 2) class โก className ( {name}๋ ์๋ ํ์ธ์. ) 3) ์คํ์ผ์ object๋ก ์์ฑ ( {name}๋ ์๋ ํ์ธ์. )..
[week_08] React ๊ธฐ์ด โ (1) OT
1. SPA (Single Page Application) ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ๋ก ์ต์ด ์ ์ ์์ฒญ์ ๋ณด๋ด๋ฉด, ์๋ฒ๋ก๋ถํฐ HTML์ ์ ๋ฌ ๋ฐ๋๋ค. ๊ทธ ํ ํ์ด์ง์ ๋ณ๊ฒฝ์ด ํ์ํ ๋ ๋ณ๊ฒฝ์ด ํ์ํ ๋ถ๋ถ์ JSON์ผ๋ก ์ ๋ฌ ๋ฐ๋๋ค. ์ด ๋, ํ์ด์ง์์ ๋ณ๊ฒฝ๋ ๋ถ๋ถ๋ง ๊ณ์ฐํ์ฌ ๋ค์ ๊ทธ๋ฆฌ๊ฒ ๋๋ค. (์ ํต์ ์ธ ํ์ด์ง์ ๊ฒฝ์ฐ, ๋ณ๊ฒฝ์ด ์์ ๋๋ง๋ค HTML์ ์๋ก ๋ฐ์์ ํ์ด์ง๋ฅผ ์ฒ์๋ถํฐ ๋ค์ ๊ทธ๋ฆผ) ๐ React๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ฉด ์ด๋ฌํ ํ์๋ฅผ ํธ๋ฆฌํ๊ฒ ํ ์ ์๋ค! 2. React ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๋ง๋ค๊ธฐ ์ํ JavaScript ๋ผ์ด๋ธ๋ฌ๋ฆฌ Component : React์ ๋ ๋ฆฝ์ ์ธ ๋จ์ Virtual DOM : ๊ฐ์์ ์ธ ํํ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ๊ณ , ReactDOM๊ณผ ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ํด ์ค์ DOM๊ณผ ๋๊ธฐํํ๋ ํ๋ก..