1) react-router-dom ์ค์น : yarn add react-router-dom;
๐shared ๐ Router.js ์์ฑ
๐ pages ๐ Home.jsx, LetterDetail.jsx ์์ฑ
2) Router.js์์ ๋ผ์ฐํฐ๋ฅผ ์ค์ ํ๋ ์ฝ๋๋ฅผ ์์ฑํ๋ค.
import {BrowserRouter,Route,Routes} from 'react-router-dom';
import Home from '../pages/Home';
import Detail from '../pages/Detail';
const Router = () => {
return (
<BrowerRouter>
<Routes>
//์ด ์์ ๋ผ์ฐํธ๋ฅผ ๋ฃ์.
<Route path = "/" element = {<Home />} />
<Route path = "/detail" element = {<Detail />} />
</Routes>
</BrowerRouter>
)
}
export default Router;
3) App.js๋ index.js์์ exportํ router๋ฅผ importํ๋ค.
(react-rotuer-dom์์ ์ ๊ณตํ๋ Router๊ฐ ์๋์ ์ ์ํ์!)
import Router from '../shared/Router';
function App() {
return (
<Router/>;
)
}
โก๏ธ ์ต์์ ๊ฒฝ๋ก์์๋ Home ์ปดํฌ๋ํธ๋ฅผ, '/detail' ๊ฒฝ๋ก๋ก ์ด๋ํ๋ฉด Detail ์ปดํฌ๋ํธ๋ฅผ ๋ณด์ฌ์ค๋ค.
๋ง์ฝ Navbar์ ๊ฐ์ด ์์์ ๊ณ ์ ํ๊ณ ์ํ๋ ๋ถ๋ถ๋ง ํ๋ฉด์ ์ ๋ฐ์ดํธํ๊ณ ์ถ์ ๋ Outlet์ ์ด์ฉํ๋ค.
์์ธ๋ ์ ์ง์ ํ๋ฉด ์ํ๋ ์์ ๋ฃจํธ๋ค์ ์์ธ๋ ์์ ํ๊ธฐํ ์ ์๋ค.
Router.js
import App from 'App';
import Home from 'pages/Home';
import Detail from 'pages/Detail';
import { BrowserRouter, Route, Routes } from 'react-router-dom';
const Router = () => {
return (
<BrowserRouter>
<Routes>
<Route path='/' element={<App />}>
<Route path='' element={<Home />} />
<Route path='detail' element={<LetterDetail />} />
</Route>
</Routes>
</BrowserRouter>
)
}
export default Router;
import { Outlet } from 'react-router-dom';
function App() {
return (
<div className='App'>
<Banner />
<Outlet />
</div>
);
}
export default App;
โก๏ธ ์๋จ์ Banner ์ปดํฌ๋ํธ๋ ์๋จ์ ์ ์ง๋๋ฉฐ,
Outlet์ ํตํด ์ค์ฒฉ๋ ํ์ ์ปดํฌ๋ํธ(Home,Detail)์ ๋ณด์ฌ์ค์ ์๋ค.