๐ React SPA์ ์ด์ด์ React Router
์ ๋ํด์ ํ์ตํ๊ณ ์ ํ๋ค.
๋ผ์ฐํ
์ด๋ ๋ฌด์์ธ์ง, ๋ผ์ฐํ
์ ์ํด ์ฌ์ฉํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ React Router
๋ฅผ ์ด๋ป๊ฒ ์ฌ์ฉํ๋์ง, React Router ์ฃผ์ ์ปดํฌ๋ํธ
๋ก๋ ์ด๋ ํ ๊ฒ๋ค์ด ์๊ณ ๊ฐ๊ฐ์ ์ญํ
์ ๋ฌด์์ธ์ง์ ๋ํด ์ ๋ฆฌํด๋ณด๊ณ ์ ํ๋ค.
SPA๋ ํ๋ฉด์ ๋ฐ๋ผ ์ฃผ์๋ ๋ฌ๋ผ์ง๋๋ฐ,
๋ค๋ฅธ ์ฃผ์์ ๋ฐ๋ผ ๋ค๋ฅธ ๋ทฐ๋ฅผ ๋ณด์ฌ์ฃผ๋ ๊ณผ์ ์ ๊ฒฝ๋ก์ ๋ฐ๋ผ ๋ณ๊ฒฝํ๋ค๊ณ ํ๋ฉฐ, Routing์ด๋ผ๊ณ ํ๋ค.
React SPA์์๋ ๋ผ์ฐํ ์ ์ํด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋๋ฐ,
๊ทธ ์ค ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋ ๊ฒ์ดReact Router
๋ผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค.
1) ๋ผ์ฐํฐ ์ญํ : BrowserRouter(React Router DOM์ด ์ฌ์ฉ๋๋ ๋ถ๋ถ์ ์์ ์ปดํฌ๋ํธ๋ก ์์น)
2) ๊ฒฝ๋ก ๋งค์นญ ์ญํ : Routes ์ Route(Routes ์ปดํฌ๋ํธ์ ์์ ์ปดํฌ๋ํธ)
3) ๊ฒฝ๋ก ๋ณ๊ฒฝ ์ญํ : Link( ํด๋น ์ปดํฌ๋ํธ๋ฅผ ํด๋ฆญํ ๋, Route์ path์ ์ผ์นํ๋ ํ์ด์ง๋ก ์ด๋ํ ์ ์๊ฒ ํด์ฃผ๋ ์ปดํฌ๋ํธ)
์ด ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด React Router์์ ๋ฐ๋ก ๋ถ๋ฌ์์ผ ํ๋ค
๋ถ๋ฌ์ค๋ ๋ช ๋ น์ด๋ ์๋์ ๊ฐ๋คimport {BrowserRouter,Routes,Route,Link} from "react-router-dom";
1. react-router ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น
// ์ํ๋ ํด๋์ React App ์ค์น npx create-react-app simpleroute cd simpleroute // react-router ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น npm install react-router-dom@^6.3.0
2. App.js๋ก react-router ์ปดํฌ๋ํธ ๊บผ๋ด์ค๊ธฐ
import React from "react"; import {BrowserRouter,Routes,Route,Link} from "react-router-dom"; export default function App() { return (...)}