<Route path="/about" element={<About/>}> -> /about
<Route path="**member**" element={<Member/>}/> -> /about/member
<Route path="**location**" element={<Location/>}/> -> /about/location
</Route>
โ /about/member ์ ์์ & ๋ ๋ค ๋ณด์
โ Route ์์ Route๊ฐ ์ค๋๋ก ํ ๋, path์ / ๋ฃ์ผ๋ฉด ์๋จ!!!
function Event() {
return (
<div>
<h4>์ค๋์ ์ด๋ฒคํธ</h4>
**<Outlet/>**
</div>
)
}
<Route path="/event" element={<Event/>}>
</Route>
<Route path="/event" element={<Event/>}>
<Route path="one" element={<div>์ฒซ ์ฃผ๋ฌธ์ ์๋ฐฐ์ถ์ฆ ์๋น์ค</div>} />
<Route path="two" element={<div>์์ผ๊ธฐ๋
์ฟ ํฐ๋ฐ๊ธฐ</div>} />
</Route>
์ฅ์ 1. route ์์ฑ์ด ์ฝ๊ฐ ๊ฐ๋จํด์ง
์ฅ์ 2. nested route ์ ์์์ element 2๊ฐ๋ ๋ณด์(๋ถ๋ชจ, ์์ ์ปดํฌ๋ํธ)
โ ๋ด๋ถ ์ด๋์ ๋ณด์ฌ์ค์ง ์ ํ๋ ค๋ฉด ์ ์จ์ผ ๋ ๋ค ๋ณด์
function About() {
return (
<div>
<h4>ํ์ฌ์ ๋ณด์</h4>
**<Outlet></Outlet> -> ์ฌ๊ธฐ์ ์์ ์ปดํฌ๋ํธ๊ฐ ๋ณด์**
</div>
)
}
โ nested routes์ element๋ณด์ฌ์ฃผ๋ ๊ณณ์
์ฅ์ 3. ์ด๋ฐ์์ผ๋ก UI ๋ง๋ค๋ฉด ๋ค๋ก๊ฐ๊ธฐ ๋ฒํผ ์ด์ฉ ๊ฐ๋ฅ
์ฅ์ 4. ํ์ด์ง ์ด๋์ด ์ฌ์(UI ์ค์์น ์กฐ์์ด ์ฌ์)
ex) ๋ถ๋ชจ์ปดํฌ๋ํธ๋ด์ฉ์ด ๋จผ์ ๋์ค๊ณ ๊ทธ ๋ค์์ ์์ ์ปดํฌ๋ํธ ๋ด์ฉ์ด ๋ณด์
function About() {
return (
<div>
<h4>ํ์ฌ์ ๋ณด์</h4>
**<Outlet></Outlet> -> ์ฌ๊ธฐ์ ์์ ์ปดํฌ๋ํธ๊ฐ ๋ณด์**
</div>
)
}
ex) ์์์ปดํฌ๋ํธ๋ด์ฉ์ด ๋จผ์ ๋์ค๊ณ ๊ทธ ๋ค์์ ๋ถ๋ชจ ์ปดํฌ๋ํธ ๋ด์ฉ์ด ๋ณด์
function About() {
return (
<div>
**<Outlet></Outlet> -> ์ฌ๊ธฐ์ ์์ ์ปดํฌ๋ํธ๊ฐ ๋ณด์**
<h4>ํ์ฌ์ ๋ณด์</h4>
</div>
)
}
์ฌ๋ฌ ์ ์ฌํ ํ์ด์ง ํ์ํ ๋(๊ธ์ ํ๋, ๋ฐ์ค ํ๋๋ง ๋ฐ๋์ด์ผ ํ ๋)
<Route path="/event" element={<Event/>}>
<Route path="one" element={<div>์ฒซ ์ฃผ๋ฌธ์ ์๋ฐฐ์ถ์ฆ ์๋น์ค</div>}/>
<Route path="two" element={<div>์์ผ๊ธฐ๋
์ฟ ํฐ๋ฐ๊ธฐ</div>}/>
</Route>
function Event() {
return (
<div>
<h4>์ค๋์ ์ด๋ฒคํธ</h4>
<Outlet></Outlet>
</div>
)
}
import './App.css';
import {Button, Navbar, Container, Nav} from 'react-bootstrap';
import data from './data';
import { useState } from 'react';
import {Routes, Route, Link, useNavigate, Outlet} from 'react-router-dom';
import Detail from './Detail.js';
function App() {
let [shoes] = useState(data);
let navigate = useNavigate();
return (
<div className="App">
<Navbar bg="light" variant="light">
<Container>
<Navbar.Brand href="#home">ShoeShop</Navbar.Brand>
<Nav className="me-auto">
<Nav.Link onClick={()=>{ navigate('/') }}>Home</Nav.Link>
<Nav.Link onClick={()=>{ navigate('/detail') }}>Cart</Nav.Link>
</Nav>
</Container>
</Navbar>
<Routes>
<Route path="/" element={
<>
<div className="main-bg"></div>
<div className="container">
<div className="row">
{
shoes.map((a,i)=>{
return (
<Card shoes={shoes[i]} i={i}></Card>
)
})
}
</div>
</div>
</>
}/>
<Route path="/detail" element={<Detail/>}/>
<Route path="/about" element={<About/>}>
<Route path="member" element={<div>member</div>} />
<Route path="location" element={<div>location</div>} />
</Route>
<Route path="/event" element={<Event/>}>
<Route path="one" element={<div>์ฒซ ์ฃผ๋ฌธ์ ์๋ฐฐ์ถ์ฆ ์๋น์ค</div>}/>
<Route path="two" element={<div>์์ผ๊ธฐ๋
์ฟ ํฐ๋ฐ๊ธฐ</div>}/>
</Route>
<Route path="*" element={<div>404ํ์ด์ง์
๋๋ค.</div>}></Route>
</Routes>
</div>
);
}
function Card(props) {
return (
<div className="col-md-4">
<img src={'https://codingapple1.github.io/shop/shoes' + (props.i+1) +'.jpg'} width="80%"/>
<h4>{props.shoes.title}</h4>
<p>{props.shoes.price}</p>
</div>
)
}
function About(){
return (
<div>
<h4>office detail</h4>
<Outlet></Outlet>
</div>
)
}
function Event() {
return (
<div>
<h4>์ค๋์ ์ด๋ฒคํธ</h4>
<Outlet></Outlet>
</div>
)
}
export default App;