React
React Router-셋팅과 기본 라우팅
코딩 화이팅
2024. 10. 22. 15:38
페이지를 나누고 싶으면 일반 html css js 사이트는 그냥 html 파일 여러개 만들면 그게 하나의 페이지이지만 React는 html 파일을 하나만 사용한다.(SPA) 그래서 react에서는 누가 다른 페이지 요청하면 그냥 내부에 있는 <div> 갈아치워서 보여주면 된다.
React-Router-dom 설치
- 외부 라이브러리이기 때문에 react-router-dom 홈페이지 들어가서 그대로 따라해야됨
npm install react-router-dom@6
- 터미널 열어서 입력하고 설치
import { BrowserRouter } from "react-router-dom";
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
<React.StrictMode>
<BrowserRouter>
<App />
</BrowserRouter>
</React.StrictMode>
);
- 셋팅은 index.js <BrowserRouter > 이걸로 <App/> 감싸면 된다.
라우터로 페이지 나누는 법
(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>
)
}
- 상단에 여러가지 컴포넌트를 import
- <Routes> 만들고 그 안에 <Route>를 작성
- <Route path="/url경로" element={<보여줄 html>} /> 이렇게 작성하면 된다.
<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>
</>
} />
- 이 url 경로는 메인 페이지
- 이러면 메인페이지 접속 시에만 상품목록이 보이고 나머지 페이지에서는 보이지 않음
Link : 페이지 이동 버튼
<Link to="/">홈</Link>
<Link to="/detail">상세페이지</Link>
- 각각 url 경로로 이동하는 링크를 생성