MPA(Multiple Page Application) : ํ์ด์ง ์ด๋๋ง๋ค ์ ์ฒด HTML์ ๋ฐ์์ค๋ ๋ฐฉ์ (์์ ๋ฐฉ์)
: ์๋ฒ๋ก๋ถํฐ ์์ ํ ์๋ก์ด ํ์ด์ง๋ฅผ ๋ถ๋ฌ์ค์ง ์๊ณ , ์ ๋ฐ์ดํธ๊ฐ ํ์ํ ๋ถ๋ถ์ ๋ฐ์ดํฐ๋ง ๋ฐ์ ๊ทธ ์ ๋ณด๋ฅผ ๊ธฐ์ค์ผ๋ก ํ์ฌ์ ํ์ด์ง๋ฅผ ์ ๋ฐ์ดํธํจ์ผ๋ก์จ ์ฌ์ฉ์์ ์ํตํ๋ ์น ์ดํ๋ฆฌ์ผ์ด์ ์ด๋ ์น ์ฌ์ดํธ
: ์ (wire)๋ฅผ ์ด์ฉํด ์ค๊ณฝ์ (frame)์ ์ก๋ ๊ฒ => ์น ํ์ด์ง์ ๋ ์ด์์๊ณผ UI ์์ ๋ฑ์ ๋ํ ๋ผ๋
: ๋ฐ์คํฌ๋กญ, ์ค๋งํธํฐ์ ํ๋ ์์ ๋ง์์ ์ง๊ด์ ์ผ๋ก ์ดํดํ๊ธฐ ์ฝ๊ฒ ๋์์ธ ํ ๊ฒ
=> ๋ฐ๋ชจ ์์ฐ, ํ๊ฐ๋ฅผ ์ํ ์ต์ํ์ ๊ธฐ๋ฅ๋ง ๋ด์ ๋ชจํ
React SPA์์ ๋ผ์ฐํ
์ ์ํด React Router๋ผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ
๋ผ์ฐํ
(Routing) : ๋ค๋ฅธ ์ฃผ์์ ๋ฐ๋ผ ๋ค๋ฅธ ๋ทฐ๋ฅผ ๋ณด์ฌ์ฃผ๋ ๊ณผ์ => ๊ฒฝ๋ก์ ๋ฐ๋ผ ๋ณ๊ฒฝ
npm i react-router-dom
React Router ์ฃผ์ ์ปดํฌ๋ํธ๋ค์ ์ฌ์ฉํ๊ธฐ ์ํด์ React Router ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์๋์ ๊ฐ์ด ๋ถ๋ฌ์์ผํจ
import { BrowserRouter, Routes, Route, Link } from "react-router-dom";
<BrowserRouter>
: ๋ผ์ฐํฐ ์ญํ , ๊ฐ์ฅ ์์์ ์์ฑ๋์ด์ผ ํจ<Routes>
, <Route>
: ๊ฒฝ๋ก ๋งค์นญ- <Routes>
: ์ฌ๋ฌ <Route>
์ปดํฌ๋ํธ๋ฅผ ๊ฐ์ธ์ ๊ทธ ์ค ๊ฒฝ๋ก๊ฐ ์ผ์นํ๋ ๋จ ํ๋์ ๋ผ์ฐํฐ๋ง ๋ ๋๋ง ์์ผ์ฃผ๋ ์ญํ
- <Route>
: path ์์ฑ์ ์ง์ ํ์ฌ ํด๋น path์์ ์ด๋ค ์ปดํฌ๋ํธ๋ฅผ ๋ณด์ฌ์ค์ง ์ ํ๋ค.
<Link>
: ๊ฒฝ๋ก ๋ณ๊ฒฝ(ํ์ด์ง ์ ํ์ ํตํด ํ์ด์ง๋ฅผ ์๋ก ๋ถ๋ฌ์ค์ง ์๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ทธ๋๋ก ์ ์งํ์ฌ HTML5 History API๋ฅผ ์ด์ฉํด ํ์ด์ง์ ์ฃผ์๋ง ๋ณ๊ฒฝ)
ReactDOM์ผ๋ก ๋ ๋์ํค๊ฒ ๋๋ฉด <Link>
๊ฐ <a>
๋ก ๋ฐ๋๋ค.
<a>
๊ฐ ์๋ <Link>
๋ฅผ ์ฌ์ฉํ๋ ์ด์ <a>
๋ ํ์ด์ง๋ฅผ ์ ํํ๋ ๊ณผ์ ์์ ํ์ด์ง๋ฅผ ๋ถ๋ฌ์ค๊ธฐ ๋๋ฌธ์ ๋ค์ ์ฒ์๋ถํฐ ๋ ๋๋ง<Link>
๋ ํ์ด์ง ์ ํ์ ๋ฐฉ์งํ๋ ๊ธฐ๋ฅ์ด ๋ด์ฅ๋์ด ์์ด SPA ๊ตฌํ ๊ฐ๋ฅ