<BrowserRouter>
로 <App/>
을 감싸면 된다.import { BrowserRouter } from "react-router-dom";
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
<React.StrictMode>
<BrowserRouter>
<App />
</BrowserRouter>
</React.StrictMode>
);
(App.js)
import { Routes, Route, Link } from 'react-router-dom'
function App(){
return (
(생략)
<Routes>
<Route path="/detail" element={ <div>상세페이지</div> } />
<Route path="/about" element={ <div>어바웃페이지</div> } />
</Routes>
)
}
<Routes>
를 만든 후 그 안에 <Route>
를 작성한다.<Route path="/url경로" element={ <보여줄html> } />
이렇게 작성하면 된다.<Route path="/" element={ <div>메인페이지</div> } />
path="/"
는 메인 페이지 경로이다.<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>
</>
} />
<Nav.Link> <Link to ="/">홈</Link></Nav.Link>
<Nav.Link> <Link to ="/detail">상세페이지</Link></Nav.Link>
원하는 곳에 <Link>
를 쓰면 된다.
나는 Nav바에 적어보았다.
처음엔 저 클릭 버튼과 밑줄이 마음에 들지 않아 Link to 가 아닌 Nav.Link href=""
를 사용했었는데, <a>
태그와 <Link>
의 차이점을 알아 보고 Link to 로 바꾸었다.
<a>
태그 차이<a>
태그의 href 로 이동하면 상태값을 잃고 속도가 저하된다.: /detail로 접속하면 보여줄 상세페이지를 컴포넌트를 이용해 만들기
상세 페이지에 들어갈 html 내용
<div className="container">
<div className="row">
<div className="col-md-6">
<img src="https://codingapple1.github.io/shop/shoes1.jpg" width="100%" />
</div>
<div className="col-md-6">
<h4 className="pt-5">상품명</h4>
<p>상품설명</p>
<p>120000원</p>
<button className="btn btn-danger">주문하기</button>
</div>
</div>
</div>
function Detail() {
return (
<>
<div className="container">
<div className="row">
<div className="col-md-6">
<img
src="https://codingapple1.github.io/shop/shoes1.jpg"
width="100%"
/>
</div>
<div className="col-md-6">
<h4 className="pt-5">상품명</h4>
<p>상품설명</p>
<p>120000원</p>
<button className="btn btn-danger">주문하기</button>
</div>
</div>
</div>
</>
);
}
<Route path="/detail" element={<Detail></Detail>} />