react-router-dom
라이브러리 이용import {BrowserRouter} from 'react-router-dom'
추가<BrowserRouter>
태그를 <App/>
태그를 감싸도록 추가한다// 예시
import { BrowserRouter } from 'react-router-dom';
ReactDOM.render(
<React.StrictMode>
<BrowserRouter>
<App />
</BrowserRouter>
</React.StrictMode>,
document.getElementById('root')
);
HashRouter
: 라우팅을 안전하게 할 수 있게 도와줌 HashRouter를 사용하면 사이트 주소뒤에 #이 붙게되는데 #뒤에 적는 것은 서버로 전달되지 않는다 그래서 라우팅은 리액트가 알아서 잘 해줄 수 있다
BrowserRouter
: 라우팅을 리액트가 아니라 서버에게 요청할 수도 있어서 위험하다 그러므로 서버에서 서버 라우팅 방지하는 API를 작성해둬야한다
import {Link, Route, Switch} from 'react-router-dom'
추가 (Link와 Switch는 나중에 사용할거라 미리 작성)<Route> </Route>
태그를 작성하고 <Route 안에><Route path="/경로"></Route>
콜론(:)
을 붙이면 모든문자
를 받겠다는 URL 작명법이다(동적 라우팅)자유롭게 작명
할 수 있다// 예시
<Route path="/"> (보여줄 HTML...) </Route> // /로 접속시
<Route path="/detail"> (보여줄 HTML...) </Route> // /detail로 접속시
<Route path="/:id"> (보여줄 HTML...) </Route> // /모든문자 라는 경로를 의미
// Router쓰는 다른방법
<Route path="/경로" component={component이름}></Route>
<Route path="/경로"> <component이름 /> </Route>
<Route exact path="/">
)<Link to="경로"> 버튼 </Link>
사용<Route>
들을 <Switch>
태그로 감싸주면 된다맨 위의 Route
하나만 보여준다import {useHistory} from 'react-router-dom';
goBack()
함수 사용하기// 예시
let history = useHistory();
<button onClick={() => history.goBack()}> 뒤로가기 </button>
// 뒤로가기 버튼을 누르면 이전 페이지로 이동한다
// .goBack() 대신 .push('경로')를 이용하면 특정 경로로 이동시킬수 있다
// 이밖에 여러 유용한 함수가 있으므로 검색해서 사용하면 된다
import {useParams} from 'react-router-dom'
// 예시
let { id } = useParams();
return (
<div> id </div>
)