- react-router - 웹&앱
- react-router-dom - 웹
- react-router-native -앱
import React ,{Component} from 'react';
import { BrowserRouter,Route, Link,Switch } from "react-router-dom";
BrowserRouter
DOM의 Window 객체는 history 객체를 통해 브라우저의 세션 기록에 접근할 수 있는 방법을 제공합니다. history는 사용자를 자신의 방문 기록 앞과 뒤로 보내고 기록 스택의 콘텐츠도 조작할 수 있는, 유용한 메서드와 속성을 가집니다. MDN
Route
Link
a
태그와 비슷합니다.
to
속성에 설정된 링크로 이동합니다.
Switch
자식 컴포넌트 Route또는 Redirect 중 매치되는 첫 번째 요소를 렌더링합니다.
Switch를 사용하면 BrowserRouter만 사용할 때와 다르게 하나의 매칭되는 요소만 렌더링한다는 점을 보장해줍니다.
npm i react-router-dom
...
import { BrowserRouter } from 'react-router-dom'
ReactDOM.render(
<BrowserRouter>
<App />
</BrowserRouter>
)
import React from "react";
import { Route } from "react-router-dom";
import { Home, About, Todos } from "./pages/Wrap";
function App() {
return (
<div className="App">
<Route exact path="/" component={Home} />
<Route path="/about" component={About} />
</div>
);
}
export default App;
App.js에서 Home, About 페이지의 Route를 설정한다.
Home라우트에 exact를 붙이지 않으면 /가 붙은 모든 컴포넌트가 랜더링된다.
import React from "react";
import { Route } from "react-router-dom";
import { Home, About, Todos } from "./pages/Wrap";
function App() {
return (
<div className="App">
<ul>
<li>
<Link to="/">홈</Link>
</li>
<li>
<Link to="/about">소개</Link>
</li>
<ul>
<Route exact path="/" component={Home} />
<Route path="/about" component={About} />
</div>
);
}
export default App;