프로젝트는 초기 세팅 상태로 진행되어집니다. +@ 로 이제는 styled-component 를 이용하기 때문에 App.css 파일이 필요없습니다.
먼저 React Router 를 설치해야합니다.
$ npm install --save react-router-dom
그리고 각 path 별로 보여줄 3개의 페이지를 준비합니다.
// src/pages/home.js
import React from 'react'
function Home() {
return (
<div>
<h1>Home Page</h1>
</div>
)
}
export default Home
// src/pages/signin.js
import React from 'react'
function SignIn() {
return (
<div>
<h1>SignIn Page</h1>
</div>
)
}
export default SignIn
// src/pages/signup.js
import React from 'react'
function SignUp() {
return (
<div>
<h1>SignUp Page</h1>
</div>
)
}
export default SignUp
// src/pages/error.js
import React from 'react'
function Error() {
return (
<div>
<h1>Error Page</h1>
</div>
)
}
export default Error
이제 각 링크를 걸어줄 Header Component 를 추가하겠습니다.
React Router 의 Link 를 이용하여 이동합니다.
a 태그와 비슷한 역할을 하지만 a 태그는 페이지의 전환이 일어나지만 Link 는 SPA routing 이 이루어진다는게 다릅니다 .
// src/components/header.js
import React from 'react'
import { Link } from 'react-router-dom';
function Header() {
return (
<div>
<Link to="/">Home</Link>
<Link to="/signin">SignIn</Link>
<Link to="/signup">SignUp</Link>
</div>
)
}
export default Header
이제 해당 url path 에 따라 보여질 Component 들을 설정합니다.
// App.js
import React from 'react'
import { BrowserRouter as Router, Route, Switch } from 'react-router-dom'
import Header from './components/header'
import Home from './pages/home'
import SignIn from './pages/signin'
import SignUp from './pages/signup'
import Error from './pages/error'
function App () {
return (
<Router>
<div>
<Header />
<Switch>
<Route exact path="/" component={Home}/>
<Route path="/signin" component={SignIn}/>
<Route path="/signup" component={SignUp}/>
<Route component={Error}/>
</Switch>
</div>
</Router>
)
}
export default App